Merge tag '1.1.2' into chapril

This commit is contained in:
Tykayn 2021-04-29 16:02:14 +02:00 committed by tykayn
commit 78934c9234
127 changed files with 4526 additions and 3504 deletions

View File

@ -184,7 +184,7 @@ pages:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$CI_REGISTRY_AUTH\",\"email\":\"$CI_REGISTRY_EMAIL\"}}}" > /kaniko/.docker/config.json
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/docker/production/Dockerfile --destination $DOCKER_IMAGE_NAME --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg CI_COMMIT_TAG=$CI_COMMIT_TAG
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/docker/production/Dockerfile --destination $DOCKER_IMAGE_NAME --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP
build-docker-master:
<<: *docker

View File

@ -5,7 +5,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 1.1.1 - 21-03-2021
## 1.1.2 - 28-04-2021
### Changed
- Added an unique index on the addresses url
- Added org.opencontainers.image.source annotation to the Docker image
- Improved the moderation action logs interface
### Fixes
- **Fixed some invalid email headers**
- **Fixed and repaired default profile still pointing on deleted profile**
- Fixed some ActivityPub issues and improve error handling
- Fixed a duplicate sentence in the email changed html template
- Fixed resource metadata remote image URL
- Fixed not only remote groups being refreshed after the acceptation of an invite
- Fixed an UI overflow on the organizer metadata block if the organizer remote username is too long
### Translations
- German
- Russian
## 1.1.1 - 22-04-2021
### Changed

View File

@ -34,14 +34,13 @@ FROM alpine
ARG BUILD_DATE
ARG VCS_REF
ARG CI_COMMIT_TAG
ARG MOBILIZON_VERSION=${CI_COMMIT_TAG}
LABEL org.opencontainers.image.title="mobilizon" \
org.opencontainers.image.description="Mobilizon for Docker" \
org.opencontainers.image.vendor="joinmobilizon.org" \
org.opencontainers.image.documentation="https://docs.joinmobilizon.org" \
org.opencontainers.image.licenses="AGPL-3.0" \
org.opencontainers.image.source="https://framagit.org/framasoft/mobilizon" \
org.opencontainers.image.url="https://joinmobilizon.org" \
org.opencontainers.image.revision=$VCS_REF \
org.opencontainers.image.created=$BUILD_DATE
@ -57,7 +56,7 @@ EXPOSE 4000
ENV MOBILIZON_DOCKER=true
COPY --from=builder --chown=nobody:nobody _build/prod/rel/mobilizon ./
RUN cp /releases/${MOBILIZON_VERSION}/runtime.exs /etc/mobilizon/config.exs
RUN cp /releases/*/runtime.exs /etc/mobilizon/config.exs
COPY docker/production/docker-entrypoint.sh ./
ENTRYPOINT ["./docker-entrypoint.sh"]

View File

@ -5,17 +5,50 @@
"kind": "INTERFACE",
"name": "ActionLogObject",
"possibleTypes": [
{
"name": "Comment"
},
{
"name": "Event"
},
{
"name": "Comment"
"name": "Person"
},
{
"name": "Report"
},
{
"name": "ReportNote"
},
{
"name": "User"
}
]
},
{
"kind": "INTERFACE",
"name": "ActivityObject",
"possibleTypes": [
{
"name": "Comment"
},
{
"name": "Discussion"
},
{
"name": "Event"
},
{
"name": "Group"
},
{
"name": "Member"
},
{
"name": "Post"
},
{
"name": "Resource"
}
]
},
@ -33,6 +66,18 @@
"name": "Application"
}
]
},
{
"kind": "INTERFACE",
"name": "Interactable",
"possibleTypes": [
{
"name": "Event"
},
{
"name": "Group"
}
]
}
]
}

View File

@ -1,6 +1,6 @@
{
"name": "mobilizon",
"version": "1.1.1",
"version": "1.1.2",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",

View File

@ -6,28 +6,10 @@ import { AUTH_ACCESS_TOKEN, AUTH_REFRESH_TOKEN } from "@/constants";
import { REFRESH_TOKEN } from "@/graphql/auth";
import { saveTokenData } from "@/utils/auth";
import { ApolloClient } from "apollo-client";
import introspectionQueryResultData from "../../fragmentTypes.json";
export const fragmentMatcher = new IntrospectionFragmentMatcher({
introspectionQueryResultData: {
__schema: {
types: [
{
kind: "UNION",
name: "SearchResult",
possibleTypes: [
{ name: "Event" },
{ name: "Person" },
{ name: "Group" },
],
},
{
kind: "INTERFACE",
name: "Actor",
possibleTypes: [{ name: "Person" }, { name: "Group" }],
},
],
},
},
introspectionQueryResultData,
});
export async function refreshAccessToken(

View File

@ -32,6 +32,7 @@ div.eventMetadataBlock {
p {
flex: 1;
overflow: hidden;
&.padding-left {
padding-left: 20px;

View File

@ -158,45 +158,69 @@ export const CREATE_REPORT_NOTE = gql`
`;
export const LOGS = gql`
query {
actionLogs {
id
action
actor {
query ActionLogs($page: Int, $limit: Int) {
actionLogs(page: $page, limit: $limit) {
elements {
id
preferredUsername
domain
avatar {
id
url
}
}
object {
... on Report {
id
}
... on ReportNote {
report {
id
}
}
... on Event {
id
title
}
... on Person {
action
actor {
id
preferredUsername
domain
name
avatar {
id
url
}
}
... on User {
id
email
confirmedAt
object {
... on Report {
id
}
... on ReportNote {
report {
id
}
}
... on Event {
id
title
}
... on Comment {
id
text
event {
id
title
uuid
}
actor {
id
preferredUsername
domain
name
}
}
... on Person {
id
preferredUsername
domain
name
}
... on Group {
id
preferredUsername
domain
name
}
... on User {
id
email
confirmedAt
}
}
insertedAt
}
insertedAt
total
}
}
`;

View File

@ -490,7 +490,6 @@
"No moderation logs yet": "Encara no hi ha registres de moderació",
"No more activity to display.": "No hi ha res més a mostrar.",
"No notification settings yet": "Encara no hi ha configuració de les modificacions",
"No one is going to this event": "Ningú ha confirmat|Hi va una persona|Hi aniran {going} persones",
"No open reports yet": "No hi ha cap denúncia oberta",
"No participant matches the filters": "Cap participant coincideix amb els filtres",
"No participant to approve|Approve participant|Approve {number} participants": "Cap participant per aprovar|Aprova la participant|Aprova {number} participants",

View File

@ -504,7 +504,6 @@
"No message": "Keine Nachricht",
"No moderation logs yet": "Bisher keine Moderationsprotokolle",
"No more activity to display.": "Es gibt keine weiteren anzuzeigenden Ereignisse.",
"No one is going to this event": "Niemand nimmt an dieser Veranstaltung teil|Eine Person nimmt teil|{going} Personen nehmen teil",
"No ongoing todos": "Keine aktiven To-dos",
"No open reports yet": "Bisher keine ausstehenden Berichte",
"No participant matches the filters": "Kein Teilnehmer entspricht den Filterkriterien",
@ -1020,7 +1019,7 @@
"Your timezone is currently set to {timezone}.": "Ihre Zeitzone ist aktuell {timezone}.",
"Your timezone was detected as {timezone}.": "Ihre Zeitzone wurde erkannt als {timezone}.",
"Your timezone {timezone} isn't supported.": "Ihre Zeitzone {timezone} wird nicht unterstützt.",
"Your upcoming events": "Deine bevorstehenden Veranstaltungen",
"Your upcoming events": "Ihre bevorstehenden Veranstaltungen",
"[This comment has been deleted by it's author]": "[Dieser Kommentar wurde vom Autor entfernt]",
"[This comment has been deleted]": "[Ihr Kommentar wurde gelöscht]",
"[deleted]": "[gelöscht]",

View File

@ -425,7 +425,7 @@
"This identity is not a member of any group.": "This identity is not a member of any group.",
"(Masked)": "(Masked)",
"{available}/{capacity} available places": "No places left|{available}/{capacity} available places",
"No one is going to this event": "No one is going to this event|One person going|{going} persons going",
"No one is participating|One person participating|{going} people participating": "No one is participating|One person participating|{going} people participating",
"By @{group}": "By @{group}",
"Date and time": "Date and time",
"Location": "Location",
@ -985,5 +985,10 @@
"Unable to update the profile. The avatar picture may be too heavy.": "Unable to update the profile. The avatar picture may be too heavy.",
"Unable to create the profile. The avatar picture may be too heavy.": "Unable to create the profile. The avatar picture may be too heavy.",
"Error while loading the preview": "Error while loading the preview",
"Instance feeds": "Instance feeds"
"Instance feeds": "Instance feeds",
"{moderator} suspended group {profile}": "{moderator} suspended group {profile}",
"{moderator} has unsuspended group {profile}": "{moderator} has unsuspended group {profile}",
"{moderator} has done an unknown action": "{moderator} has done an unknown action",
"{moderator} has deleted a comment from {author} under the event {event}": "{moderator} has deleted a comment from {author} under the event {event}",
"{moderator} has deleted a comment from {author}": "{moderator} has deleted a comment from {author}"
}

View File

@ -521,7 +521,6 @@
"No moderation logs yet": "Aún no hay registros de moderación",
"No more activity to display.": "No hay más actividad para mostrar.",
"No notification settings yet": "Aún no hay configuración de notificaciones",
"No one is going to this event": "Nadie asistirá a este evento|Una persona irá|{going} irán personas",
"No ongoing todos": "No hay tareas pendientes (\"to-do\") en marcha",
"No open reports yet": "Aún no hay informes abiertos",
"No participant matches the filters": "Ningún participante coincide con los filtros",

View File

@ -480,7 +480,6 @@
"No message": "Ei viestiä",
"No moderation logs yet": "Moderointilokia ei vielä ole",
"No notification settings yet": "Ei vielä ilmoitusasetuksia",
"No one is going to this event": "Kukaan ei ole menossa tähän tapahtumaan|Yksi henkilö menossa|{going} henkilöä menossa",
"No ongoing todos": "Ei keskeneräisiä tehtäviä",
"No open reports yet": "Avoimia raportteja ei vielä ole",
"No participant matches the filters": "Ei suodattimia vastaavia osallistujia",

View File

@ -479,7 +479,7 @@
"No message": "Pas de message",
"No moderation logs yet": "Pas encore de journaux de modération",
"No more activity to display.": "Il n'y a plus d'activités à afficher.",
"No one is going to this event": "Personne n'y va|Une personne y va|{going} personnes y vont",
"No one is participating|One person participating|{going} people participating": "Personne ne participe|Une personne participe|{going} personnes participent",
"No ongoing todos": "Pas de todos en cours",
"No open reports yet": "Aucun signalement ouvert pour le moment",
"No participant matches the filters": "Aucun·e participant·e ne correspond aux filtres",
@ -1079,5 +1079,10 @@
"Unable to update the profile. The avatar picture may be too heavy.": "Impossible de mettre à jour le profil. L'image d'avatar est probablement trop lourde.",
"Unable to create the profile. The avatar picture may be too heavy.": "Impossible de créer le profil. L'image d'avatar est probablement trop lourde.",
"Error while loading the preview": "Erreur lors du chargement de l'aperçu",
"Instance feeds": "Flux de l'instance"
"Instance feeds": "Flux de l'instance",
"{moderator} suspended group {profile}": "{moderator} a suspendu le groupe {profile}",
"{moderator} has unsuspended group {profile}": "{moderator} a annulé la suspension du groupe {profile}",
"{moderator} has done an unknown action": "{moderator} a effectué une action inconnue",
"{moderator} has deleted a comment from {author} under the event {event}": "{moderator} a supprimé un commentaire de {author} sous l'événement {event}",
"{moderator} has deleted a comment from {author}": "{moderator} a supprimé un commentaire de {author}"
}

View File

@ -447,7 +447,6 @@
"No message": "Chan eil teachdaireachd ann",
"No moderation logs yet": "Chan eil loga maorsainneachd ann fhathast",
"No more activity to display.": "Chan eil barrachd ghnìomhan ri an sealltainn ann.",
"No one is going to this event": "Thèid {going} ann|Thèid {going} ann|Thèid {going} ann|Thèid {going} ann",
"No open reports yet": "Chan eil gearan gun fhuasgladh ann",
"No participant matches the filters": "Chan eil com-pàirtiche sam bith a maidseadh nan criathragan",
"No participant to approve|Approve participant|Approve {number} participants": "Aontaich ri {number} chom-pàirtiche|Aontaich ri {number} chom-pàirtiche|Aontaich ri {number} com-pàirtichean|Aontaich ri {number} com-pàirtiche",

View File

@ -493,7 +493,6 @@
"No message": "Sen mensaxe",
"No moderation logs yet": "Sen rexistros da moderación",
"No more activity to display.": "Sen máis actividade que amosar.",
"No one is going to this event": "Ninguén vai a este evento|Unha persoa vai ir|{going} persoas van ir",
"No open reports yet": "Aínda non se presentaron denuncias",
"No participant matches the filters": "Ningún participante para estos filtros",
"No participant to approve|Approve participant|Approve {number} participants": "Sen participantes que aprobar|Aprobar participante|Aprobar {number} participantes",

View File

@ -462,7 +462,6 @@
"No message": "Nincs üzenet",
"No moderation logs yet": "Még nincsenek moderálási naplók",
"No more activity to display.": "Nincs több megjelenítendő tevékenység.",
"No one is going to this event": "Senki sem jön erre az eseményre|Egy személy jön|{going} személy jön",
"No open reports yet": "Még nincsenek nyitott jelentések",
"No participant matches the filters": "Nincs a szűrőkre illeszkedő résztvevő",
"No participant to approve|Approve participant|Approve {number} participants": "Nincs jóváhagyandó résztvevő|Résztvevő jóváhagyása|{number} résztvevő jóváhagyása",

View File

@ -10,7 +10,9 @@
"<b>Please do not use it in any real way.</b>": "<b>Non puoi ancora usarlo per pubblicizzare eventi reali!</b>",
"<b>{contact}</b> will be displayed as contact.": "<b>{contact}</b> verrà visualizzato come contatto.|<b>{contact}</b> verranno visualizzati come contatti.",
"@{group}": "@{group}",
"@{username}": "@{username}",
"@{username} ({role})": "@{username} ({role})",
"@{username}'s follow request was rejected": "La richiesta di follow a @{username} è stata respinta",
"A cookie is a small file containing information that is sent to your computer when you visit a website. When you visit the site again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can configure your browser to refuse all cookies. However, this may result in some website features or services partially working. Local storage works the same way but allows you to store more data.": "Un cookie è un piccolo file contenente informazioni che vengono inviate al tuo computer quando visiti un sito web. Quando visiti nuovamente il sito, il cookie consente a quel sito di riconoscere il tuo browser. I cookie possono memorizzare le preferenze dell'utente e altre informazioni. Puoi configurare il tuo browser per rifiutare tutti i cookie. Tuttavia, ciò potrebbe comportare il funzionamento parziale di alcune funzionalità o servizi del sito Web. L'archiviazione locale funziona allo stesso modo ma consente di archiviare più dati.",
"A federated software": "Un software federato",
"A place for your code of conduct, rules or guidelines. You can use HTML tags.": "Un posto per il codice di condotta, le regole o le linee guida. Puoi uare tag HTML.",
@ -57,10 +59,11 @@
"Administrator": "Amministratore",
"All good, let's continue!": "Tutto a posto, continuiamo!",
"All group members and other eventual server admins will still be able to view this information.": "Tutti i membri del gruppo e altri eventuali amministratori del server potranno comunque visualizzare queste informazioni.",
"All the places have already been taken": "Tutti i posti sono stati occupati|Un posto è ancora disponibile|{places} i posti sono ancora disponibili",
"All the places have already been taken": "Tutti i posti sono stati già occupati",
"Allow all comments": "Permetti a tutti di commentare",
"Allow all comments from users with accounts": "Consenti tutti i commenti degli utenti che hanno effettuato l'accesso",
"Allow registrations": "Consenti registrazioni",
"An error has occured. Sorry about that. You may try to reload the page.": "Si è verificato un errore. Ci scusiamo. Potresti provare a ricaricare la pagina.",
"An error has occurred.": "C'è stato un errore.",
"An ethical alternative": "Un'alternativa etica",
"An instance is an installed version of the Mobilizon software running on a server. An instance can be run by anyone using the {mobilizon_software} or other federated apps, aka the “fediverse”. This instance's name is {instance_name}. Mobilizon is a federated network of multiple instances (just like email servers), users registered on different instances may communicate even though they didn't register on the same instance.": "Un'istanza è una versione installata del software Mobilizon in esecuzione su un server. Un istanza può essere gestita da chiunque utilizzi il {mobilizon_software} o un altre apps federate, note anche come \"fediverso\". Il nome di quest'istanza è {instance_name}. Mobilizon è una rete federata di più istanze (roprio come i server e-mail), utenti registrati su istanze diverse possono comunque comunicare anche se non si sono registrati nella stessa istanza.",
@ -86,6 +89,7 @@
"Are you sure you want to delete this event? This action cannot be reverted.": "Sei sicuro di voler cancellare questo evento? Questa azione è irreversibile.",
"As the event organizer has chosen to manually validate participation requests, your participation will be really confirmed only once you receive an email stating it's being accepted.": "Poiché chi organizza l'evento ha scelto di approvare manualmente le richieste di partecipazione, la tua partecipazione sarà realmente confermata una volta che riceverai una mail che indica che è stata accettata.",
"Assigned to": "Assegnato a",
"Atom feed for events and posts": "Atom feed per eventi e messaggi",
"Avatar": "Avatar",
"Back to previous page": "Torna alla pagina precedente",
"Banner": "Banner",
@ -113,6 +117,7 @@
"Change password": "Cambia password",
"Change timezone": "Cambia il fuso orario",
"Check your inbox (and your junk mail folder).": "Controlla la tua casella di posta (e la cartella della posta indesiderata).",
"City or region": "Città o regione",
"Clear": "Sgombra",
"Clear participation data for all events": "Rimuovi dati di partecipazione per tutti gli eventi",
"Clear participation data for this event": "Rimuovi dati di partecipazione per questo evento",
@ -137,6 +142,7 @@
"Contact": "Contatta",
"Continue editing": "Continua la modifica",
"Cookies and Local storage": "Cookie e memoria locale",
"Copy details to clipboard": "Copia i dettagli negli appunti",
"Country": "Paese",
"Create": "Crea",
"Create a calc": "Crea un calc",
@ -231,6 +237,9 @@
"Enter your own privacy policy. HTML tags allowed. The {mobilizon_privacy_policy} is provided as template.": "Inserisci la tua politica sulla riservatezza. Tag HTML consentiti. La {mobilizon_privacy_policy} viene fornita come modello.",
"Enter your own terms. HTML tags allowed. The {mobilizon_terms} are provided as template.": "Inserisci i tuoi termini. Tag HTML consentiti. I {mobilizon_terms} sono forniti come modello.",
"Error": "Errore",
"Error details copied!": "Dettagli dell'errore copiati!",
"Error message": "Messaggio di errore",
"Error stacktrace": "Stacktrace dell'errore",
"Error while changing email": "Errore nel cambiamento della mail",
"Error while login with {provider}. Retry or login another way.": "Si è verifcato un errore durante il login con {providel}. Riprova o fai il login in altro modo.",
"Error while login with {provider}. This login provider doesn't exist.": "Si è verificato un errore durante il login con {provider}. Questo provider non esiste.",
@ -249,6 +258,7 @@
"Event {eventTitle} deleted": "Evento {eventTitle} rimosso",
"Event {eventTitle} reported": "Evento {eventTitle} segnalato",
"Events": "Eventi",
"Events nearby": "Eventi nelle vicinanze",
"Events tagged with {tag}": "Eventi contrassegnati con {tag}",
"Everything": "Tutti",
"Ex: mobilizon.fr": "Es: mobilizon.fr",
@ -311,6 +321,8 @@
"I participate": "Parteciperò",
"I want to allow people to participate without an account.": "Voglio permettere alle persone di partecipare senza un account.",
"I want to approve every participation request": "Voglio approvare ogni richiesta di partecipazione",
"ICS feed for events": "Feed ICS per eventi",
"ICS/WebCal Feed": "Feed ICS/WebCal",
"Identity {displayName} created": "Identità {displayName} creata",
"Identity {displayName} deleted": "Identità {displayName} eliminata",
"Identity {displayName} updated": "Identità {displayName} aggiornata",
@ -345,6 +357,7 @@
"Invite a new member": "Invita un nuovo membro",
"Invite member": "Invita membro",
"Invited": "Invitato",
"It is possible that the content is not accessible on this instance, because this instance has blocked the profiles or groups behind this content.": "È possibile che il contenuto non sia accessibile su questa istanza, perché questa istanza ha bloccato i profili o i gruppi che stanno dietro questo contenuto.",
"Italic": "Corsivo",
"Join <b>{instance}</b>, a Mobilizon instance": "Entra in <b>{instance}</b>, un'istanza di Mobilizon",
"Join group": "Unisciti al gruppo",
@ -354,6 +367,7 @@
"Last IP adress": "Ultimo indirizzo IP",
"Last group created": "Ultimo gruppo creato",
"Last published event": "Ultimo evento pubblicato",
"Last published events": "Ultimi eventi pubblicati",
"Last sign-in": "Ultimo accesso",
"Last week": "Ultima settimana",
"Latest posts": "Ultimi post",
@ -440,7 +454,7 @@
"No member matches the filters": "Nessun membro corrisponde ai filtri",
"No message": "Nessun messaggio",
"No moderation logs yet": "Ancora nessun registro di moderazione",
"No one is going to this event": "Nessuno va a questo evento|Va una persona|Vanno {going} persone",
"No more activity to display.": "Non ci sono più attività da visualizzare.",
"No open reports yet": "Ancora nessuna segnalazione aperta",
"No participant matches the filters": "Nessun partecipante corrisponde ai filtri",
"No participant to approve|Approve participant|Approve {number} participants": "Nessun partecipante da approvare|Approva partecipante|Approva {number} partecipanti",
@ -472,13 +486,17 @@
"On {date} ending at {endTime}": "Il {date} finendo alle {endTime}",
"On {date} from {startTime} to {endTime}": "Il {date} dalle {startTime} alle {endTime}",
"On {date} starting at {startTime}": "Il {date} iniziando alle {startTime}",
"On {instance}": "Su {instance}",
"Only accessible through link": "Accessibile solo attraverso il collegamento",
"Only accessible through link (private)": "Accessibile solo tramite link (privato)",
"Only accessible to members of the group": "Accessibile solo ai membri del gruppo",
"Only alphanumeric characters and underscores are supported.": "Solo caratteri alfanumerici e trattini bassi sono supportati.",
"Only alphanumeric lowercased characters and underscores are supported.": "Sono accettati solo caratteri alfanumerici in minuscolo, e il tratto basso (underscore).",
"Only group members can access discussions": "Solo i membri del gruppo possono accedere alle discussioni",
"Only group moderators can create, edit and delete posts.": "Solo i moderatori del gruppo possono creare, modificare ed eliminare i post.",
"Open": "Aperto/a",
"Open a topic on our forum": "Apri una discussione sul nostro forum",
"Open an issue on our bug tracker (advanced users)": "Apri una issue sul nostro bug tracker (utenti avanzati)",
"Opened reports": "Segnalazioni aperte",
"Or": "Oppure",
"Organized": "Organizzato",
@ -513,6 +531,7 @@
"Pick a profile or a group": "Scegli un profilo o un gruppo",
"Pick an identity": "Scegli un'identità",
"Pick an instance": "Scegli un'istanza",
"Please add as many details as possible to help identify the problem.": "Si prega di aggiungere quanti più dettagli possibili per aiutare a identificare il problema.",
"Please check your spam folder if you didn't receive the email.": "Per favore verifica la tua cartella di posta indesiderata (spam) se non hai ricevuto la mail.",
"Please contact this instance's Mobilizon admin if you think this is a mistake.": "Per favore contatta l'amministrazione di Mobilizon di questa istanza se pensi che questo sia un errore.",
"Please do not use it in any real way.": "Si prega di non utilizzare in nessun modo.",
@ -589,6 +608,7 @@
"Resource provided is not an URL": "La risorsa data non è un URL",
"Resources": "Risorse",
"Restricted": "Limitato",
"Return to the group page": "Ritorna alla pagina del gruppo",
"Right now": "Proprio adesso",
"Role": "Ruolo",
"Rules": "Regole",
@ -601,6 +621,7 @@
"Searching…": "Ricerca…",
"Search…": "Cerca…",
"Select a language": "Seleziona una lingua",
"Select a radius": "Seleziona un raggio",
"Select a timezone": "Seleziona un fuso orario",
"Select languages": "Seleziona lingue",
"Send email": "Manda email",
@ -627,6 +648,7 @@
"Suspend group": "Sospendi gruppo",
"Suspended": "Sospeso",
"Task lists": "Elenchi di attività",
"Technical details": "Dettagli tecnici",
"Tentative": "Provvisorio",
"Tentative: Will be confirmed later": "Provvisorio: sarà confermato più tardi",
"Terms": "Condizioni",
@ -647,6 +669,10 @@
"The event will show as attributed to this group.": "L'evento verrà visualizzato come attribuito a questo gruppo.",
"The event will show as attributed to your personal profile.": "L'evento verrà visualizzato come attribuito al tuo profilo personale.",
"The event will show the group as organizer.": "L'evento mostrerà il gruppo come organizzatore.",
"The event {event} was created by {profile}.": "L'evento {event} è stato creato da {profile}.",
"The event {event} was deleted by {profile}.": "L'evento {event} è stato cancellato da {profile}.",
"The event {event} was updated by {profile}.": "L'evento {event} è stato aggiornato da {profile}.",
"The events you created are not shown here.": "Gli eventi che hai creato non vengono mostrati qui.",
"The group will be publicly listed in search results and may be suggested in the explore section. Only public informations will be shown on it's page.": "Il gruppo verrà elencato pubblicamente nei risultati di ricerca e potrebbe essere suggerito nella sezione Esplora. Nella sua pagina verranno mostrate solo le informazioni pubbliche.",
"The instance administrator is the person or entity that runs this Mobilizon instance.": "L'amministratore dell'istanza è la persona o entità che gestisce quest'istanza Mobilizon.",
"The member was removed from the group {group}": "Il membro è stato rimosso dal gruppo {group}",
@ -654,11 +680,17 @@
"The organiser has chosen to close comments.": "L'organizzatore ha scelto di disabilitare i commenti.",
"The page you're looking for doesn't exist.": "La pagina che stai cercando non esiste.",
"The password was successfully changed": "La password è stata cambiata con successo",
"The post {post} was created by {profile}.": "Il post {post} è stato creato da {profile}.",
"The post {post} was deleted by {profile}.": "Il post {post} è stato cancellato da {profile}.",
"The post {post} was updated by {profile}.": "Il post {post} è stato aggiornato da {profile}.",
"The report will be sent to the moderators of your instance. You can explain why you report this content below.": "La segnalazione sarà inviata a chi modera la tua istanza. Puoi spiegare perché segnali questo contenuto qua sotto.",
"The technical details of the error can help developers solve the problem more easily. Please add them to your feedback.": "I dettagli tecnici dell'errore possono aiutare gli sviluppatori a risolvere il problema più facilmente. Per favore aggiungili al tuo feedback.",
"The {default_privacy_policy} will be used. They will be translated in the user's language.": "Verrà utilizzata la {default_privacy_policy}. Verranno tradotti nella lingua dell'utente.",
"The {default_terms} will be used. They will be translated in the user's language.": "Saranno usate le {default_terms}. Saranno tradotte nel linguaggio dell'utente.",
"There are {participants} participants.": "Ci sono {participants} partecipanti.",
"There is no activity yet. Start doing some things to see activity appear here.": "Non sono ancora presenti attività. Inizia a fare qualcosa per veder apparire le attività.",
"There will be no way to recover your data.": "Non c'è modo di recuperare i tuoi dati.",
"There's no discussions yet": "Non sono presenti discussioni",
"These events may interest you": "Questo evento potrebbe interessarti",
"This Mobilizon instance and this event organizer allows anonymous participations, but requires validation through email confirmation.": "Questa istanza Mobilizon e chi organizza questo evento permettono la partecipazione anonima, ma richiedono una validazione tramite email di conferma.",
"This URL is not supported": "Questo URL non è supportato",
@ -697,6 +729,7 @@
"Type or select a date…": "Digita o seleziona una data…",
"URL": "URL",
"URL copied to clipboard": "URL copiato negli appunti",
"Unable to copy to clipboard": "Impossibile copiare negli appunti",
"Unable to detect timezone.": "Impossibile rilevare il fuso orario.",
"Unable to load event for participation. The error details are provided below:": "Impossibile caricare l'evento per la partecipazione. Di seguito vengono forniti i dettagli dell'errore:",
"Unable to save your participation in this browser.": "Impossibile salvare la tua partecipazione in questo browser.",
@ -733,6 +766,7 @@
"Visible everywhere on the web (public)": "Visibile ovunque dalla rete (pubblico)",
"Waiting for organization team approval.": "In attesa dell'approvazione dal gruppo di organizzazione.",
"Warning": "Avviso",
"We improve this software thanks to your feedback. To let us know about this issue, two possibilities (both unfortunately require user account creation):": "Miglioriamo questo software grazie ai tuoi feedback. Per comunicarci questo problema hai due possibilità (entrambe purtroppo richiedono la creazione di un account utente):",
"We just sent an email to {email}": "Abbiamo appena mandato una mail a {email}",
"We use your timezone to make sure you get notifications for an event at the correct time.": "Usiamo il tuo fuso orario per fare in modo che le notifiche per un evento ti arrivino al momento giusto.",
"We will redirect you to your instance in order to interact with this event": "Ti reindirizzeremo alla tua istanza in modo da interagire con questo evento",
@ -744,13 +778,16 @@
"Welcome back {username}!": "Bentrovatə {username}!",
"Welcome back!": "Bentrovatə!",
"Welcome to Mobilizon, {username}!": "Benvenutə su Mobilizon, {username}!",
"What can I do to help?": "Che posso fare per aiutarti?",
"When a moderator from the group creates an event and attributes it to the group, it will show up here.": "Quando un moderatore del gruppo crea un evento e lo attribuisce al gruppo, verrà visualizzato qui.",
"Who can view this event and participate": "Chi può vedere questo evento e partecipare",
"Who can view this post": "Chi può visualizzare questo post",
"Who published {number} events": "Chi ha pubblicato {number} eventi",
"Why create an account?": "Perchè creare un account?",
"Will allow to display and manage your participation status on the event page when using this device. Uncheck if you're using a public device.": "Consentirà di visualizzare e gestire lo stato di partecipazione sulla pagina dell'evento quando si utilizza questo dispositivo. Deseleziona se stai utilizzando un dispositivo pubblico.",
"Within {number} kilometers of {place}": "|Entro un chilometro da {place}|Entro {number} chilometri da {place}",
"Write something…": "Scrivi qualcosa…",
"Yesterday": "Ieri",
"You are not an administrator for this group.": "Non sei un amministratore di questo gruppo.",
"You are not part of any group.": "Non fai parte di nessun gruppo.",
"You are participating in this event anonymously": "Stai partecipando a questo evento in forma anonima",
@ -760,6 +797,13 @@
"You can pick your timezone into your preferences.": "Puoi scegliere il tuo fuso orario nelle preferenze.",
"You can try another search term or drag and drop the marker on the map": "Puoi provare un altro termine di ricerca o trascinare il marcatore sulla mappa",
"You can't change your password because you are registered through {provider}.": "Non puoi cambiare la tua password perché sei registrato con {provider}.",
"You created the event {event}.": "Hai creato l'evento {event}.",
"You created the post {post}.": "Hai creato il post {post}.",
"You deleted the event {event}.": "Hai cancellato l'evento {event}.",
"You deleted the post {post}.": "Hai cancellato il post {post}.",
"You demoted the member {member} to an unknown role.": "Hai degradato {member} a un ruolo sconosciuto.",
"You demoted {member} to moderator.": "Hai degradato {member} a moderatore.",
"You demoted {member} to simple member.": "Hai degradato {member} a membro semplice.",
"You didn't create or join any event yet.": "Non hai ancora creato o partecipato a nessun evento.",
"You don't follow any instances yet.": "Non segui ancora nessuna istanza.",
"You have been disconnected": "Sei stato disconnesso",
@ -769,11 +813,19 @@
"You have one event in {days} days.": "Non hai eventi in {days} giorni | Hai un evento in {days} giorni. | Hai {count} eventi in {days} giorni",
"You have one event today.": "Non hai eventi oggi | Hai un evento oggi. | Hai {count} eventi oggi",
"You have one event tomorrow.": "Non hai eventi domani | Hai un evento domani | Hai {count} eventi domani",
"You invited {member}.": "Hai invitato {member}.",
"You may clear all participation information for this device with the buttons below.": "Puoi rimuovere tutte le informazioni di partecipazione da questo dispositivo col bottone qui sotto.",
"You may now close this window, or {return_to_event}.": "Ora puoi chiudere questa finestra, o {return_to_event}.",
"You may now close this window.": "Ora puoi chiudere questa finestra.",
"You need to create the group before you create an event.": "Devi creare un gruppo prima di creare un evento.",
"You need to login.": "Devi accedere.",
"You promoted the member {member} to an unknown role.": "Hai promosso l'utente {member} a un ruolo sconosciuto.",
"You promoted {member} to administrator.": "Hai promosso {member} ad amministratore.",
"You promoted {member} to moderator.": "Hai promosso {member} a moderatore.",
"You requested to join the group.": "Hai richiesto di unirti al gruppo.",
"You updated the event {event}.": "Hai aggiornato l'evento {event}.",
"You updated the member {member}.": "Hai aggiornato il membro {member}.",
"You updated the post {post}.": "Hai aggiornato il post {post}.",
"You will be able to add an avatar and set other options in your account settings.": "Potrai aggiungere un avatar e impostare altre opzioni nelle impostazioni del tuo account.",
"You will be redirected to the original instance": "Sarai reindirizzato verso l'istanza originale",
"You will find here all the events you have created or of which you are a participant.": "Qui troverai tutti gli eventi che hai creato o di cui sei partecipante.",
@ -785,6 +837,7 @@
"Your account has been validated": "Il tuo account è stato validato",
"Your account is being validated": "Il tuo account è in via di validazione",
"Your account is nearly ready, {username}": "Il tuo account è quasi pronto, {username}",
"Your city or region and the radius will only be used to suggest you events nearby. The event radius will consider the administrative center of the area.": "La tua città o regione e il raggio saranno usati solo per suggerirti eventi nelle vicinanze. Il raggio dell'evento considererà il centro amministrativo della zona.",
"Your current email is {email}. You use it to log in.": "La tua email attuale è {email}. La usi per accedere.",
"Your email": "La tua email",
"Your email address was automatically set based on your {provider} account.": "Il tuo indirizzo email è stato impostato automaticamente in base al tuo account {provider}.",
@ -806,6 +859,7 @@
"Your timezone is currently set to {timezone}.": "Il fuso orario è attualmente impostato su {timezone}.",
"Your timezone was detected as {timezone}.": "Il tuo fuso orario è stato rilevato come {timezone}.",
"Your timezone {timezone} isn't supported.": "Il tuo fuso orario {timezone} non è supportato.",
"Your upcoming events": "I tuoi prossimi eventi",
"[This comment has been deleted by it's author]": "[Questo commento è stato eliminato dal suo autore]",
"[This comment has been deleted]": "[Questo commento è stato eliminato]",
"[deleted]": "[cancellato]",
@ -835,11 +889,16 @@
"with another identity…": "con altra identità…",
"{approved} / {total} seats": "{approved} / {total} posti",
"{available}/{capacity} available places": "Nessun posto rimasto|{available}/{capacity} posti rimasti",
"{count} km": "{count} km",
"{count} participants": "Ancora nessun partecipante | Un partecipante | {counts} partecipanti",
"{count} requests waiting": "{count} richieste in attesa",
"{count} team members": "{count} membri del team",
"{group} activity timeline": "{group} cronologia delle attività",
"{group}'s events": "{group} eventi",
"{instanceName} is an instance of the {mobilizon} software.": "{instanceName} è un'istanza del software {mobilizon}.",
"{instanceName} is an instance of {mobilizon_link}, a free software built with the community.": "{instanceName} è un'istanza di {mobilizon_link}, un software libero costruito con la comunità.",
"{member} requested to join the group.": "{member} ha richiesto di unirsi al gruppo.",
"{member} was invited by {profile}.": "{member} è stato invitato da {profile}.",
"{moderator} added a note on {report}": "ha aggiunto una nota su",
"{moderator} closed {report}": "{moderator} ha chiuso {report}",
"{moderator} deleted an event named \"{title}\"": "{moderator} ha cancellato un evento denominato \"{title}\"",
@ -854,6 +913,13 @@
"{number} participations": "Nessuna partecipazione|Una partecipazione|{number} partecipazioni",
"{number} posts": "Nessun post|Un post|{number} di post",
"{profile} (by default)": "{profile} (per impostazione predefinita)",
"{profile} demoted {member} to an unknown role.": "{profile} ha degradato {member} a un ruolo sconosciuto.",
"{profile} demoted {member} to moderator.": "{profile} ha degradato {member} a moderatore.",
"{profile} demoted {member} to simple member.": "{profile} ha degradato {member} a membro semplice.",
"{profile} promoted {member} to administrator.": "{profile} ha promosso {member} ad amministratore.",
"{profile} promoted {member} to an unknown role.": "{profile} ha promosso {member} a un ruolo sconosciuto.",
"{profile} promoted {member} to moderator.": "{profile} ha promosso {member} a moderatore.",
"{profile} updated the member {member}.": "{profile} ha aggiornato il membro {member}.",
"{title} ({count} todos)": "{title} ({count} tutti)",
"{username} was invited to {group}": "{username} è stato invitato a {group}",
"© The OpenStreetMap Contributors": "© The OpenStreetMap Contributors"

View File

@ -463,7 +463,6 @@
"No message": "Inga melding",
"No moderation logs yet": "Ingen gjennomsynsloggar enno",
"No more activity to display.": "Ikkje meir aktivitet å visa.",
"No one is going to this event": "Ingen skal på denne hendinga|Ein person skal|{going} personar skal",
"No open reports yet": "Ingen opne rapportar enno",
"No participant matches the filters": "Ingen deltakarar passar med filtra",
"No participant to approve|Approve participant|Approve {number} participants": "Ingen deltakar å godkjenna|Godkjenn deltakar|Godkjenn {number} deltakarar",

View File

@ -495,7 +495,6 @@
"No message": "Cap de messatge",
"No moderation logs yet": "Cap de jornals de moderacion pel moment",
"No notification settings yet": "Cap de paramètres de notificacion pel moment",
"No one is going to this event": "Degun i va pas|Una persona i va|{going} personas i van",
"No open reports yet": "Cap de senhalament dubèrt pel moment",
"No participant matches the filters": "Cap de participant correspond pas als filtres",
"No participant to approve|Approve participant|Approve {number} participants": "Cap de participar de validar|Validar la participacion|Validar los {number} participants",

View File

@ -435,7 +435,6 @@
"No member matches the filters": "Żaden członek nie spełnia kryteriów",
"No message": "Brak wiadomości",
"No moderation logs yet": "Nie ma jeszcze dzienników moderacyjnych",
"No one is going to this event": "Nikt nie wybiera się na to wydarzenie|Jedna osoba wybiera się|{going} osoba wybiera się",
"No open reports yet": "Jeszcze nie ma otwartych zgłoszeń",
"No participant matches the filters": "Żaden członek nie spełnia kryteriów",
"No participant to approve|Approve participant|Approve {number} participants": "Brak uczestników do przyjęcia|Przyjmij uczestnika|Przyjmij {number} uczestników|Przyjmij {number} uczestników",

View File

@ -434,7 +434,6 @@
"No member matches the filters": "Nenhum membro corresponde aos filtros",
"No message": "Nenhuma mensagem",
"No moderation logs yet": "Nenhum relatório de moderação ainda",
"No one is going to this event": "Ninguém vai neste evento|Uma pessoa vai|{going} pessoas vão",
"No open reports yet": "Nenhum relatório aberto ainda",
"No participant matches the filters": "Nenhum participante corresponde aos filtros",
"No participant to approve|Approve participant|Approve {number} participants": "Nenhum participante para aprovar|Aprovar participante|Aprovar {number} participantes",

View File

@ -122,7 +122,6 @@
"Click to upload": "Нажмите, чтобы загрузить",
"Close": "Закрыть",
"Close comments for all (except for admins)": "Закрыть комментарии для всех (кроме админов)",
"Events nearby": "Ближайшие мероприятия",
"Closed": "Закрыто",
"Comment deleted": "Комментарий удален",
"Comment from @{username} reported": "Жалоба на комментарий от @{username} отправлена",
@ -255,6 +254,7 @@
"Event {eventTitle} deleted": "Мероприятие {eventTitle} удалено",
"Event {eventTitle} reported": "Жалоба на мероприятие {eventTitle} отправлена",
"Events": "Мероприятия",
"Events nearby": "Ближайшие мероприятия",
"Events tagged with {tag}": "События с тегом {tag}",
"Everything": "Всё",
"Ex: mobilizon.fr": "Например: mobilizon.fr",
@ -342,6 +342,7 @@
"Instance Terms URL": "URL условий использования узла",
"Instance administrator": "Администратор узла",
"Instance configuration": "Настройки узла",
"Instance feeds": "Ленты узла",
"Instance languages": "Языки узла",
"Instance rules": "Правила узла",
"Instance settings": "Настройки узла",
@ -451,7 +452,6 @@
"No message": "Нет сообщений",
"No moderation logs yet": "Журналов модерования пока нет",
"No more activity to display.": "Больше нет действия для отображения.",
"No one is going to this event": "Пока никто не участвует|Один человек пойдёт|{going} людей пойдут",
"No open reports yet": "Пока нет открытых отчётов",
"No participant matches the filters": "Ни один участник не соответствует критериям",
"No participant to approve|Approve participant|Approve {number} participants": "Нет участников для одобрения | Принять участника | Принять {number} участников",

View File

@ -123,7 +123,6 @@
"Click to upload": "Kliknite za pošiljanje",
"Close": "Zapri",
"Close comments for all (except for admins)": "Zapri komentarje za vse (razen za skrbnike)",
"Events nearby": "Zapri dogodke",
"Closed": "Zaprto",
"Comment deleted": "Komentar je izbrisan",
"Comment from @{username} reported": "Prijavljen je bil komentar uporabnika @{username}",
@ -238,6 +237,7 @@
"Error message": "Sporočilo o napaki",
"Error stacktrace": "Sledenje napake",
"Error while changing email": "Napaka pri spreminjanju e-poštnega naslova",
"Error while loading the preview": "Napaka pri nalaganju predogleda",
"Error while login with {provider}. Retry or login another way.": "Napaka pri prijavi s {provider}. Poskusite znova ali se prijavite na drug način.",
"Error while login with {provider}. This login provider doesn't exist.": "Napaka pri prijavi s {provider}. Ta ponudnik ne obstaja.",
"Error while reporting group {groupTitle}": "Napaka pri poročanju skupine {groupTitle}",
@ -255,6 +255,7 @@
"Event {eventTitle} deleted": "Dogodek {eventTitle} je izbrisan",
"Event {eventTitle} reported": "Dogodek {eventTitle} je prijavljen",
"Events": "Dogodki",
"Events nearby": "Zapri dogodke",
"Events tagged with {tag}": "Dogodki z oznako {tag}",
"Everything": "Vse",
"Ex: mobilizon.fr": "Npr.: mobilizon.fr",
@ -342,6 +343,7 @@
"Instance Terms URL": "URL pogojev uporabe vozlišča",
"Instance administrator": "Skrbnik vozlišča",
"Instance configuration": "Nastavitve vozlišča",
"Instance feeds": "Viri vozlišča",
"Instance languages": "Jezik vozlišča",
"Instance rules": "Pravila vozlišča",
"Instance settings": "Nastavitve vozlišča",
@ -451,7 +453,6 @@
"No message": "Ni sporočil",
"No moderation logs yet": "Nobenega dnevnika moderiranja še ni",
"No more activity to display.": "Ni več dejavnosti za prikaz.",
"No one is going to this event": "Nihče ne gre na ta dogodek|Ena oseba gre|{going} oseb gre",
"No open reports yet": "Še ni odprtih poročil",
"No participant matches the filters": "Noben udeleženec se ne ujema s filtri",
"No participant to approve|Approve participant|Approve {number} participants": "Nobenega udeleženca za odobritev|Odobri udeleženca|Odobri {number} udeležencev",
@ -688,6 +689,7 @@
"The post {post} was deleted by {profile}.": "Objavo {post} je izbrisal/a {profil}.",
"The post {post} was updated by {profile}.": "Objavo {post} je posodobil/a {profil}.",
"The report will be sent to the moderators of your instance. You can explain why you report this content below.": "Poročilo bo poslano moderatorjem vašega vozlišča. Spodaj lahko razložite, zakaj prijavljate to vsebino.",
"The selected picture is too heavy. You need to select a file smaller than {size}.": "Izbrana slika je prevelika. Izbrati morate datoteko, ki je manjša od {size}.",
"The technical details of the error can help developers solve the problem more easily. Please add them to your feedback.": "Tehnične podrobnosti napake lahko razvijalcem pomagajo pri lažjem reševanju težave. Dodajte jih v povratne informacije.",
"The {default_privacy_policy} will be used. They will be translated in the user's language.": "Uporabljen bo {default_privacy_policy}. Preveden bo v uporabnikov jezik.",
"The {default_terms} will be used. They will be translated in the user's language.": "Uporabljeni bodo {default_terms}. Prevedeni bodo v uporabnikov jezik.",
@ -735,9 +737,12 @@
"URL": "URL",
"URL copied to clipboard": "URL je kopiran v odložišče",
"Unable to copy to clipboard": "Ni mogoče kopirati v odložišče",
"Unable to create the group. One of the pictures may be too heavy.": "Skupine ni mogoče ustvariti. Ena od slik je morda prevelika.",
"Unable to create the profile. The avatar picture may be too heavy.": "Ni mogoče ustvariti profila. Slika podobe je morda prevelika.",
"Unable to detect timezone.": "Časovnega pasu ni mogoče zaznati.",
"Unable to load event for participation. The error details are provided below:": "Ni mogoče naložiti dogodka za udeležbo. Podrobnosti o napaki so navedene spodaj:",
"Unable to save your participation in this browser.": "V tem brskalniku ni mogoče shraniti vaše udeležbe.",
"Unable to update the profile. The avatar picture may be too heavy.": "Ni mogoče posodobiti profila. Slika podobe je morda prevelika.",
"Unfortunately, this instance isn't opened to registrations": "Na žalost tao vozlišče ni odprto za registracije",
"Unfortunately, your participation request was rejected by the organizers.": "Na žalost so organizatorji zavrnili vašo prošnjo za udeležbo.",
"Unknown": "Neznano",

View File

@ -157,7 +157,7 @@
<span v-else>
{{
$tc(
"No one is going to this event",
"No one is participating|One person participating|{going} people participating",
event.participantStats.participant,
{
going: event.participantStats.participant,
@ -185,7 +185,7 @@
<span v-else>
{{
$tc(
"No one is going to this event",
"No one is participating|One person participating|{going} people participating",
event.participantStats.participant,
{
going: event.participantStats.participant,
@ -341,7 +341,10 @@
:endsOn="event.endsOn"
/>
</event-metadata-block>
<event-metadata-block :title="$t('Organized by')">
<event-metadata-block
class="metadata-organized-by"
:title="$t('Organized by')"
>
<popover-actor-card
:actor="event.organizerActor"
v-if="!event.attributedTo"
@ -1430,6 +1433,20 @@ div.sidebar {
}
}
::v-deep .metadata-organized-by {
.v-popover.popover .trigger {
width: 100%;
.media-content {
width: calc(100% - 32px - 1rem);
p.has-text-grey {
text-overflow: ellipsis;
overflow: hidden;
}
}
}
}
div.event-description-comments {
min-width: 20rem;
padding: 1rem;

View File

@ -14,9 +14,9 @@
</li>
</ul>
</nav>
<section>
<ul v-if="actionLogs.length > 0">
<li v-for="log in actionLogs" :key="log.id">
<section v-if="actionLogs.total > 0 && actionLogs.elements.length > 0">
<ul>
<li v-for="log in actionLogs.elements" :key="log.id">
<div class="box">
<img
class="image"
@ -147,7 +147,10 @@
<b slot="title">{{ log.object.title }}</b>
</i18n>
<i18n
v-else-if="log.action === ActionLogAction.ACTOR_SUSPENSION"
v-else-if="
log.action === ActionLogAction.ACTOR_SUSPENSION &&
log.object.__typename == 'Person'
"
tag="span"
path="{moderator} suspended profile {profile}"
>
@ -169,7 +172,10 @@
</router-link>
</i18n>
<i18n
v-else-if="log.action === ActionLogAction.ACTOR_UNSUSPENSION"
v-else-if="
log.action === ActionLogAction.ACTOR_UNSUSPENSION &&
log.object.__typename == 'Person'
"
tag="span"
path="{moderator} has unsuspended profile {profile}"
>
@ -190,6 +196,56 @@
>{{ displayNameAndUsername(log.object) }}
</router-link>
</i18n>
<i18n
v-else-if="
log.action === ActionLogAction.ACTOR_SUSPENSION &&
log.object.__typename == 'Group'
"
tag="span"
path="{moderator} suspended group {profile}"
>
<router-link
slot="moderator"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.actor.id },
}"
>@{{ log.actor.preferredUsername }}</router-link
>
<router-link
slot="profile"
:to="{
name: RouteName.ADMIN_GROUP_PROFILE,
params: { id: log.object.id },
}"
>{{ displayNameAndUsername(log.object) }}
</router-link>
</i18n>
<i18n
v-else-if="
log.action === ActionLogAction.ACTOR_UNSUSPENSION &&
log.object.__typename == 'Group'
"
tag="span"
path="{moderator} has unsuspended group {profile}"
>
<router-link
slot="moderator"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.actor.id },
}"
>@{{ log.actor.preferredUsername }}</router-link
>
<router-link
slot="profile"
:to="{
name: RouteName.ADMIN_GROUP_PROFILE,
params: { id: log.object.id },
}"
>{{ displayNameAndUsername(log.object) }}
</router-link>
</i18n>
<i18n
v-else-if="log.action === ActionLogAction.USER_DELETION"
tag="span"
@ -214,25 +270,113 @@
</router-link>
<b v-else slot="user">{{ log.object.email }}</b>
</i18n>
<span
v-else-if="
log.action === ActionLogAction.COMMENT_DELETION &&
log.object.event
"
>
<i18n
tag="span"
path="{moderator} has deleted a comment from {author} under the event {event}"
>
<router-link
slot="moderator"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.actor.id },
}"
>@{{ log.actor.preferredUsername }}</router-link
>
<router-link
v-if="log.object.event && log.object.event.uuid"
slot="event"
:to="{
name: RouteName.EVENT,
params: { uuid: log.object.event.uuid },
}"
>{{ log.object.event.title }}
</router-link>
<b v-else slot="event">{{ log.object.event.title }}</b>
<router-link
slot="author"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.object.actor.id },
}"
>{{ displayNameAndUsername(log.object.actor) }}
</router-link>
</i18n>
<pre v-html="log.object.text" />
</span>
<span v-else-if="log.action === ActionLogAction.COMMENT_DELETION">
<i18n
tag="span"
path="{moderator} has deleted a comment from {author}"
>
<router-link
slot="moderator"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.actor.id },
}"
>@{{ log.actor.preferredUsername }}</router-link
>
<router-link
slot="author"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.object.actor.id },
}"
>{{ displayNameAndUsername(log.object.actor) }}
</router-link>
</i18n>
<pre v-html="log.object.text" />
</span>
<i18n
v-else
tag="span"
path="{moderator} has done an unknown action"
>
<router-link
slot="moderator"
:to="{
name: RouteName.ADMIN_PROFILE,
params: { id: log.actor.id },
}"
>@{{ log.actor.preferredUsername }}</router-link
>
</i18n>
<br />
<small>{{ log.insertedAt | formatDateTimeString }}</small>
</div>
</li>
</ul>
<div v-else>
<b-message type="is-info">{{ $t("No moderation logs yet") }}</b-message>
</div>
<b-pagination
:total="actionLogs.total"
v-model="page"
:per-page="LOGS_PER_PAGE"
:aria-next-label="$t('Next page')"
:aria-previous-label="$t('Previous page')"
:aria-page-label="$t('Page')"
:aria-current-label="$t('Current page')"
>
</b-pagination>
</section>
<div v-else>
<b-message type="is-info">{{ $t("No moderation logs yet") }}</b-message>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Component, Vue, Watch } from "vue-property-decorator";
import { IActionLog } from "@/types/report.model";
import { LOGS } from "@/graphql/report";
import ReportCard from "@/components/Report/ReportCard.vue";
import { ActionLogAction } from "@/types/enums";
import RouteName from "../../router/name";
import { displayNameAndUsername } from "../../types/actor";
import { Paginate } from "@/types/paginate";
@Component({
components: {
@ -242,17 +386,39 @@ import { displayNameAndUsername } from "../../types/actor";
actionLogs: {
fetchPolicy: "cache-and-network",
query: LOGS,
variables() {
return {
page: this.page,
limit: this.LOGS_PER_PAGE,
};
},
},
},
})
export default class ReportList extends Vue {
actionLogs?: IActionLog[] = [];
actionLogs?: Paginate<IActionLog> = { total: 0, elements: [] };
page = parseInt((this.$route.query.page as string) || "1", 10);
LOGS_PER_PAGE = 10;
ActionLogAction = ActionLogAction;
RouteName = RouteName;
displayNameAndUsername = displayNameAndUsername;
mounted(): void {
this.page = parseInt((this.$route.query.page as string) || "1", 10);
}
@Watch("page")
triggerLoadMoreMemberPageChange(page: string): void {
this.$router.replace({
name: RouteName.REPORT_LOGS,
query: { ...this.$route.query, page },
});
}
}
</script>
<style lang="scss" scoped>
@ -265,4 +431,8 @@ img.image {
a {
text-decoration: none;
}
section ul li {
margin: 0.5rem auto;
}
</style>

View File

@ -1444,9 +1444,9 @@
jest-diff "^24.3.0"
"@types/jest@^26.0.18":
version "26.0.22"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6"
integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw==
version "26.0.23"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.23.tgz#a1b7eab3c503b80451d019efb588ec63522ee4e7"
integrity sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==
dependencies:
jest-diff "^26.0.0"
pretty-format "^26.0.0"
@ -1500,7 +1500,12 @@
resolved "https://registry.yarnpkg.com/@types/ngeohash/-/ngeohash-0.6.2.tgz#356bb5e79294bc9f746ad89eb848eca2741a6e43"
integrity sha512-6nlq2eEh75JegDGUXis9wGTYIJpUvbori4qx++PRKQsV3YRkaqUNPNykzphniqPSZADXCouBuAnyptjUkMkhvw==
"@types/node@*", "@types/node@>=6":
"@types/node@*":
version "15.0.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a"
integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==
"@types/node@>=6":
version "14.14.41"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615"
integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==
@ -3318,9 +3323,9 @@ bser@2.1.1:
node-int64 "^0.4.0"
buefy@^0.9.0:
version "0.9.6"
resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.9.6.tgz#83c026c4a6f8fdcab80ded59181efc20873e3a99"
integrity sha512-qoYtbTf78xvC5fcRsuUKqUizJCAk2rg6LiAzON8X1G0GTsHkCWRWBHsJmU/jk1/6B+TQ10pSGkQgB+OLrREeXg==
version "0.9.7"
resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.9.7.tgz#694e73fe0b32632a53d94c5ba9cfa4468363badd"
integrity sha512-Fli0ZjNDgtFtHm0LItWmfhNJ1oLjDwPzUWccvwXXoo2mADXaH8JQxyhY+drUuUV5/GMu5PtwqQSqPgZy942VZg==
dependencies:
bulma "0.9.2"
@ -3584,7 +3589,15 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^4.0.0, chalk@^4.1.0:
chalk@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chalk@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
@ -4088,9 +4101,9 @@ core-js@^2.4.0, core-js@^2.5.0:
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.6.4:
version "3.10.2"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.2.tgz#17cb038ce084522a717d873b63f2b3ee532e2cd5"
integrity sha512-W+2oVYeNghuBr3yTzZFQ5rfmjZtYB/Ubg87R5YOmlGrIb+Uw9f7qjUbhsj+/EkXhcV7eOD3jiM4+sgraX3FZUw==
version "3.11.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.11.0.tgz#05dac6aa70c0a4ad842261f8957b961d36eb8926"
integrity sha512-bd79DPpx+1Ilh9+30aT5O1sgpQd4Ttg8oqkqi51ZzhedMM1omD2e6IOF48Z/DzDCZ2svp49tN/3vneTK6ZBkXw==
core-js@^3.6.5:
version "3.10.1"
@ -12677,9 +12690,9 @@ vue-hot-reload-api@^2.3.0:
integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
vue-i18n-extract@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/vue-i18n-extract/-/vue-i18n-extract-1.2.1.tgz#0695f628b8ffeba840fe4cbcc2bec2429cce88a5"
integrity sha512-CaT2vqQi/b5YZyau+6OSvyY044GQu6kexMMUh2zF08s+i08hfbj3s/pdgKLq5EjFbSDFcx2SjF5zACWAhHtN5Q==
version "1.2.3"
resolved "https://registry.yarnpkg.com/vue-i18n-extract/-/vue-i18n-extract-1.2.3.tgz#7a16bbce29d587476df0bad85c0f9453b5bcfcbe"
integrity sha512-ZLtF6wp732KHKawHx5ZSmjyydkli9g26z0NfGLP89DkiGx4nKFYZ2oIH35HtImdhcfq1zqkeSwxs7kRzarLoVw==
dependencies:
commander "^6.1.0"
dot-object "^2.1.4"

View File

@ -39,11 +39,12 @@ defmodule Mobilizon.Federation.ActivityPub do
Visibility
}
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Types.{Managable, Ownable}
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Federation.ActivityStream.Convertible
alias Mobilizon.Federation.HTTPSignatures.Signature
alias Mobilizon.Federation.WebFinger
alias Mobilizon.Service.Notifications.Scheduler
alias Mobilizon.Storage.Page
@ -79,7 +80,6 @@ defmodule Mobilizon.Federation.ActivityPub do
{:ok, struct()} | {:error, any()}
def fetch_object_from_url(url, options \\ []) do
Logger.info("Fetching object from url #{url}")
force_fetch = Keyword.get(options, :force, false)
with {:not_http, true} <- {:not_http, String.starts_with?(url, "http")},
{:existing, nil} <-
@ -99,39 +99,7 @@ defmodule Mobilizon.Federation.ActivityPub do
Preloader.maybe_preload(entity)
else
{:existing, entity} ->
Logger.debug("Entity is already existing")
res =
if force_fetch and not are_same_origin?(url, Endpoint.url()) do
Logger.debug("Entity is external and we want a force fetch")
case Fetcher.fetch_and_update(url, options) do
{:ok, _activity, entity} ->
{:ok, entity}
{:error, "Gone"} ->
{:error, "Gone", entity}
{:error, "Not found"} ->
{:error, "Not found", entity}
end
else
{:ok, entity}
end
Logger.debug("Going to preload an existing entity")
case res do
{:ok, entity} ->
Preloader.maybe_preload(entity)
{:error, status, entity} ->
{:ok, entity} = Preloader.maybe_preload(entity)
{:error, status, entity}
err ->
err
end
handle_existing_entity(url, entity, options)
e ->
Logger.warn("Something failed while fetching url #{inspect(e)}")
@ -139,37 +107,51 @@ defmodule Mobilizon.Federation.ActivityPub do
end
end
@doc """
Getting an actor from url, eventually creating it if we don't have it locally or if it needs an update
"""
@spec get_or_fetch_actor_by_url(String.t(), boolean) :: {:ok, Actor.t()} | {:error, String.t()}
def get_or_fetch_actor_by_url(url, preload \\ false)
@spec handle_existing_entity(String.t(), struct(), Keyword.t()) ::
{:ok, struct()}
| {:ok, struct()}
| {:error, String.t(), struct()}
| {:error, String.t()}
defp handle_existing_entity(url, entity, options) do
Logger.debug("Entity is already existing")
Logger.debug("Going to preload an existing entity")
def get_or_fetch_actor_by_url(nil, _preload), do: {:error, "Can't fetch a nil url"}
case refresh_entity(url, entity, options) do
{:ok, entity} ->
Preloader.maybe_preload(entity)
def get_or_fetch_actor_by_url("https://www.w3.org/ns/activitystreams#Public", _preload) do
with %Actor{url: url} <- Relay.get_actor() do
get_or_fetch_actor_by_url(url)
{:error, status, entity} ->
{:ok, entity} = Preloader.maybe_preload(entity)
{:error, status, entity}
err ->
err
end
end
@spec get_or_fetch_actor_by_url(String.t(), boolean()) :: {:ok, Actor.t()} | {:error, any()}
def get_or_fetch_actor_by_url(url, preload) do
with {:ok, %Actor{} = cached_actor} <- Actors.get_actor_by_url(url, preload),
false <- Actors.needs_update?(cached_actor) do
{:ok, cached_actor}
else
_ ->
# For tests, see https://github.com/jjh42/mock#not-supported---mocking-internal-function-calls and Mobilizon.Federation.ActivityPubTest
case __MODULE__.make_actor_from_url(url, preload) do
{:ok, %Actor{} = actor} ->
{:ok, actor}
@spec refresh_entity(String.t(), struct(), Keyword.t()) ::
{:ok, struct()} | {:error, String.t(), struct()} | {:error, String.t()}
defp refresh_entity(url, entity, options) do
force_fetch = Keyword.get(options, :force, false)
err ->
Logger.warn("Could not fetch by AP id")
Logger.debug(inspect(err))
{:error, "Could not fetch by AP id"}
end
if force_fetch and not are_same_origin?(url, Endpoint.url()) do
Logger.debug("Entity is external and we want a force fetch")
case Fetcher.fetch_and_update(url, options) do
{:ok, _activity, entity} ->
{:ok, entity}
{:error, "Gone"} ->
{:error, "Gone", entity}
{:error, "Not found"} ->
{:error, "Not found", entity}
{:error, "Object origin check failed"} ->
{:error, "Object origin check failed"}
end
else
{:ok, entity}
end
end
@ -287,7 +269,8 @@ defmodule Mobilizon.Federation.ActivityPub do
local \\ true,
public \\ true
) do
with {:ok, %Actor{id: object_owner_actor_id}} <- get_or_fetch_actor_by_url(object["actor"]),
with {:ok, %Actor{id: object_owner_actor_id}} <-
ActivityPubActor.get_or_fetch_actor_by_url(object["actor"]),
{:ok, %Share{} = _share} <- Share.create(object["id"], actor.id, object_owner_actor_id),
announce_data <- make_announce_data(actor, object, activity_id, public),
{:ok, activity} <- create_activity(announce_data, local),
@ -604,68 +587,6 @@ defmodule Mobilizon.Federation.ActivityPub do
end
end
@doc """
Create an actor locally by its URL (AP ID)
"""
@spec make_actor_from_url(String.t(), boolean()) :: {:ok, %Actor{}} | {:error, any()}
def make_actor_from_url(url, preload \\ false) do
if are_same_origin?(url, Endpoint.url()) do
{:error, "Can't make a local actor from URL"}
else
case fetch_and_prepare_actor_from_url(url) do
{:ok, data} ->
Actors.upsert_actor(data, preload)
# Request returned 410
{:error, :actor_deleted} ->
Logger.info("Actor was deleted")
{:error, :actor_deleted}
{:error, e} ->
Logger.warn("Failed to make actor from url")
{:error, e}
e ->
Logger.warn("Failed to make actor from url")
{:error, e}
end
end
end
@doc """
Find an actor in our local database or call WebFinger to find what's its AP ID is and then fetch it
"""
@spec find_or_make_actor_from_nickname(String.t(), atom() | nil) :: tuple()
def find_or_make_actor_from_nickname(nickname, type \\ nil) do
case Actors.get_actor_by_name(nickname, type) do
%Actor{} = actor ->
{:ok, actor}
nil ->
make_actor_from_nickname(nickname)
end
end
@spec find_or_make_person_from_nickname(String.t()) :: tuple()
def find_or_make_person_from_nickname(nick), do: find_or_make_actor_from_nickname(nick, :Person)
@spec find_or_make_group_from_nickname(String.t()) :: tuple()
def find_or_make_group_from_nickname(nick), do: find_or_make_actor_from_nickname(nick, :Group)
@doc """
Create an actor inside our database from username, using WebFinger to find out its AP ID and then fetch it
"""
@spec make_actor_from_nickname(String.t()) :: {:ok, %Actor{}} | {:error, any()}
def make_actor_from_nickname(nickname) do
case WebFinger.finger(nickname) do
{:ok, url} when is_binary(url) ->
make_actor_from_url(url)
_e ->
{:error, "No ActivityPub URL found in WebFinger"}
end
end
@spec is_create_activity?(Activity.t()) :: boolean
defp is_create_activity?(%Activity{data: %{"type" => "Create"}}), do: true
defp is_create_activity?(_), do: false
@ -783,40 +704,6 @@ defmodule Mobilizon.Federation.ActivityPub do
)
end
# Fetching a remote actor's information through its AP ID
@spec fetch_and_prepare_actor_from_url(String.t()) :: {:ok, struct()} | {:error, atom()} | any()
defp fetch_and_prepare_actor_from_url(url) do
Logger.debug("Fetching and preparing actor from url")
Logger.debug(inspect(url))
res =
with {:ok, %{status: 200, body: body}} <-
Tesla.get(url,
headers: [{"Accept", "application/activity+json"}],
follow_redirect: true
),
:ok <- Logger.debug("response okay, now decoding json"),
{:ok, data} <- Jason.decode(body) do
Logger.debug("Got activity+json response at actor's endpoint, now converting data")
{:ok, Converter.Actor.as_to_model_data(data)}
else
# Actor is gone, probably deleted
{:ok, %{status: 410}} ->
Logger.info("Response HTTP 410")
{:error, :actor_deleted}
{:error, e} ->
Logger.warn("Could not decode actor at fetch #{url}, #{inspect(e)}")
{:error, e}
e ->
Logger.warn("Could not decode actor at fetch #{url}, #{inspect(e)}")
{:error, e}
end
res
end
@doc """
Return all public activities (events & comments) for an actor
"""
@ -937,10 +824,7 @@ defmodule Mobilizon.Federation.ActivityPub do
Mobilizon.Service.Activity.Member.insert_activity(member,
subject: "member_approved"
),
_ <-
unless(is_nil(member.parent.domain),
do: Refresher.fetch_group(member.parent.url, member.actor)
),
_ <- maybe_refresh_group(member),
Absinthe.Subscription.publish(Endpoint, member.actor,
group_membership_changed: [
Actor.preferred_username_and_domain(member.parent),
@ -979,6 +863,7 @@ defmodule Mobilizon.Federation.ActivityPub do
Mobilizon.Service.Activity.Member.insert_activity(member,
subject: "member_accepted_invitation"
),
_ <- maybe_refresh_group(member),
accept_data <- %{
"type" => "Accept",
"attributedTo" => member.parent.url,
@ -992,6 +877,14 @@ defmodule Mobilizon.Federation.ActivityPub do
end
end
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)
end
@spec reject_join(Participant.t(), map()) :: {:ok, Participant.t(), Activity.t()} | any()
defp reject_join(%Participant{} = participant, additional) do
with {:ok, %Participant{} = participant} <-

View File

@ -0,0 +1,102 @@
defmodule Mobilizon.Federation.ActivityPub.Actor do
@moduledoc """
Module to handle ActivityPub Actor interactions
"""
alias Mobilizon.Actors
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub.{Fetcher, Relay}
alias Mobilizon.Federation.WebFinger
alias Mobilizon.Web.Endpoint
require Logger
import Mobilizon.Federation.ActivityPub.Utils, only: [are_same_origin?: 2]
@doc """
Getting an actor from url, eventually creating it if we don't have it locally or if it needs an update
"""
@spec get_or_fetch_actor_by_url(String.t(), boolean) :: {:ok, Actor.t()} | {:error, String.t()}
def get_or_fetch_actor_by_url(url, preload \\ false)
def get_or_fetch_actor_by_url(nil, _preload), do: {:error, "Can't fetch a nil url"}
def get_or_fetch_actor_by_url("https://www.w3.org/ns/activitystreams#Public", _preload) do
with %Actor{url: url} <- Relay.get_actor() do
get_or_fetch_actor_by_url(url)
end
end
@spec get_or_fetch_actor_by_url(String.t(), boolean()) :: {:ok, Actor.t()} | {:error, any()}
def get_or_fetch_actor_by_url(url, preload) do
with {:ok, %Actor{} = cached_actor} <- Actors.get_actor_by_url(url, preload),
false <- Actors.needs_update?(cached_actor) do
{:ok, cached_actor}
else
_ ->
# For tests, see https://github.com/jjh42/mock#not-supported---mocking-internal-function-calls and Mobilizon.Federation.ActivityPubTest
case __MODULE__.make_actor_from_url(url, preload) do
{:ok, %Actor{} = actor} ->
{:ok, actor}
{:error, err} ->
Logger.debug("Could not fetch by AP id")
Logger.debug(inspect(err))
{:error, "Could not fetch by AP id"}
end
end
end
@doc """
Create an actor locally by its URL (AP ID)
"""
@spec make_actor_from_url(String.t(), boolean()) :: {:ok, %Actor{}} | {:error, any()}
def make_actor_from_url(url, preload \\ false) do
if are_same_origin?(url, Endpoint.url()) do
{:error, "Can't make a local actor from URL"}
else
case Fetcher.fetch_and_prepare_actor_from_url(url) do
{:ok, data} ->
Actors.upsert_actor(data, preload)
# Request returned 410
{:error, :actor_deleted} ->
Logger.info("Actor was deleted")
{:error, :actor_deleted}
{:error, e} ->
Logger.warn("Failed to make actor from url")
{:error, e}
end
end
end
@doc """
Find an actor in our local database or call WebFinger to find what's its AP ID is and then fetch it
"""
@spec find_or_make_actor_from_nickname(String.t(), atom() | nil) :: tuple()
def find_or_make_actor_from_nickname(nickname, type \\ nil) do
case Actors.get_actor_by_name(nickname, type) do
%Actor{} = actor ->
{:ok, actor}
nil ->
make_actor_from_nickname(nickname)
end
end
@spec find_or_make_group_from_nickname(String.t()) :: tuple()
def find_or_make_group_from_nickname(nick), do: find_or_make_actor_from_nickname(nick, :Group)
@doc """
Create an actor inside our database from username, using WebFinger to find out its AP ID and then fetch it
"""
@spec make_actor_from_nickname(String.t()) :: {:ok, %Actor{}} | {:error, any()}
def make_actor_from_nickname(nickname) do
case WebFinger.finger(nickname) do
{:ok, url} when is_binary(url) ->
make_actor_from_url(url)
_e ->
{:error, "No ActivityPub URL found in WebFinger"}
end
end
end

View File

@ -13,6 +13,7 @@ defmodule Mobilizon.Federation.ActivityPub.Federator do
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.{Activity, Transmogrifier}
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
require Logger
@ -42,7 +43,8 @@ defmodule Mobilizon.Federation.ActivityPub.Federator do
Logger.debug(inspect(activity))
Logger.debug(fn -> "Running publish for #{activity.data["id"]}" end)
with {:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(activity.data["actor"]) do
with {:ok, %Actor{} = actor} <-
ActivityPubActor.get_or_fetch_actor_by_url(activity.data["actor"]) do
Logger.info(fn -> "Sending #{activity.data["id"]} out via AP" end)
ActivityPub.publish(actor, activity)
end
@ -61,7 +63,7 @@ defmodule Mobilizon.Federation.ActivityPub.Federator do
e ->
# Just drop those for now
Logger.error("Unhandled activity")
Logger.debug("Unhandled activity")
Logger.debug(inspect(e))
Logger.debug(Jason.encode!(params))
end

View File

@ -8,6 +8,7 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
alias Mobilizon.Federation.HTTPSignatures.Signature
alias Mobilizon.Federation.ActivityPub.{Relay, Transmogrifier}
alias Mobilizon.Federation.ActivityStream.Converter.Actor, as: ActorConverter
alias Mobilizon.Service.HTTP.ActivityPub, as: ActivityPubClient
import Mobilizon.Federation.ActivityPub.Utils,
@ -30,11 +31,11 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
{:ok, data}
else
{:ok, %Tesla.Env{status: 410}} ->
Logger.warn("Resource at #{url} is 410 Gone")
Logger.debug("Resource at #{url} is 410 Gone")
{:error, "Gone"}
{:ok, %Tesla.Env{status: 404}} ->
Logger.warn("Resource at #{url} is 404 Gone")
Logger.debug("Resource at #{url} is 404 Gone")
{:error, "Not found"}
{:ok, %Tesla.Env{} = res} ->
@ -75,7 +76,7 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
@spec fetch_and_update(String.t(), Keyword.t()) :: {:ok, map(), struct()}
def fetch_and_update(url, options \\ []) do
with {:ok, data} when is_map(data) <- fetch(url, options),
{:origin_check, true} <- {:origin_check, origin_check?(url, data)},
{:origin_check, true} <- {:origin_check, origin_check(url, data)},
params <- %{
"type" => "Update",
"to" => data["to"],
@ -87,7 +88,6 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
Transmogrifier.handle_incoming(params)
else
{:origin_check, false} ->
Logger.warn("Object origin check failed")
{:error, "Object origin check failed"}
{:error, err} ->
@ -95,6 +95,57 @@ defmodule Mobilizon.Federation.ActivityPub.Fetcher do
end
end
@doc """
Fetching a remote actor's information through its AP ID
"""
@spec fetch_and_prepare_actor_from_url(String.t()) :: {:ok, map()} | {:error, atom()} | any()
def fetch_and_prepare_actor_from_url(url) do
Logger.debug("Fetching and preparing actor from url")
Logger.debug(inspect(url))
res =
with {:ok, %{status: 200, body: body}} <-
Tesla.get(url,
headers: [{"Accept", "application/activity+json"}],
follow_redirect: true
),
:ok <- Logger.debug("response okay, now decoding json"),
{:ok, data} <- Jason.decode(body) do
Logger.debug("Got activity+json response at actor's endpoint, now converting data")
{:ok, ActorConverter.as_to_model_data(data)}
else
# Actor is gone, probably deleted
{:ok, %{status: 410}} ->
Logger.info("Response HTTP 410")
{:error, :actor_deleted}
{:ok, %Tesla.Env{}} ->
Logger.info("Non 200 HTTP Code")
{:error, :http_error}
{:error, e} ->
Logger.warn("Could not decode actor at fetch #{url}, #{inspect(e)}")
{:error, e}
e ->
Logger.warn("Could not decode actor at fetch #{url}, #{inspect(e)}")
{:error, e}
end
res
end
@spec origin_check(String.t(), map()) :: boolean()
defp origin_check(url, data) do
if origin_check?(url, data) do
true
else
Sentry.capture_message("Object origin check failed", extra: %{url: url, data: data})
Logger.debug("Object origin check failed")
false
end
end
@spec address_invalid(String.t()) :: false | {:error, :invalid_url}
defp address_invalid(address) do
with %URI{host: host, scheme: scheme} <- URI.parse(address),

View File

@ -12,6 +12,7 @@ defmodule Mobilizon.Federation.ActivityPub.Preloader do
alias Mobilizon.Resources.Resource
alias Mobilizon.Tombstone
@spec maybe_preload(struct()) :: {:ok, struct()} | {:error, struct()}
def maybe_preload(%Event{url: url}),
do: {:ok, Events.get_public_event_by_url_with_preload!(url)}

View File

@ -6,8 +6,8 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
alias Mobilizon.Actors
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.{Fetcher, Relay, Transmogrifier, Utils}
alias Mobilizon.Storage.Repo
require Logger
@doc """
@ -32,7 +32,7 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
end
def refresh_profile(%Actor{type: type, url: url}) when type in [:Person, :Application] do
with {:ok, %Actor{outbox_url: outbox_url}} <- ActivityPub.make_actor_from_url(url),
with {:ok, %Actor{outbox_url: outbox_url}} <- ActivityPubActor.make_actor_from_url(url),
:ok <- fetch_collection(outbox_url, Relay.get_actor()) do
:ok
end
@ -50,7 +50,7 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
discussions_url: discussions_url,
events_url: events_url
}} <-
ActivityPub.make_actor_from_url(group_url),
ActivityPubActor.make_actor_from_url(group_url),
:ok <- fetch_collection(outbox_url, on_behalf_of),
:ok <- fetch_collection(members_url, on_behalf_of),
:ok <- fetch_collection(resources_url, on_behalf_of),
@ -60,9 +60,23 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
:ok <- fetch_collection(events_url, on_behalf_of) do
:ok
else
{:error, err} ->
Logger.error("Error while refreshing a group")
Sentry.capture_message("Error while refreshing a group",
extra: %{group_url: group_url}
)
Logger.debug(inspect(err))
err ->
Logger.error("Error while refreshing a group")
Logger.error(inspect(err))
Sentry.capture_message("Error while refreshing a group",
extra: %{group_url: group_url}
)
Logger.debug(inspect(err))
end
end
@ -96,14 +110,11 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
end
end
@spec refresh_all_external_groups :: any()
@spec refresh_all_external_groups :: :ok
def refresh_all_external_groups do
Repo.transaction(fn ->
Actors.list_external_groups_for_stream()
|> Stream.filter(&Actors.needs_update?/1)
|> Stream.map(&refresh_profile/1)
|> Stream.run()
end)
Actors.list_external_groups()
|> Enum.filter(&Actors.needs_update?/1)
|> Enum.each(&refresh_profile/1)
end
defp process_collection(%{"type" => type, "orderedItems" => items}, _on_behalf_of)
@ -122,6 +133,14 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
:ok
end
# Lemmy uses an OrderedCollection with the items property
defp process_collection(%{"type" => type, "items" => items} = collection, on_behalf_of)
when type in ["OrderedCollection", "OrderedCollectionPage"] do
collection
|> Map.put("orderedItems", items)
|> process_collection(on_behalf_of)
end
defp process_collection(%{"type" => "OrderedCollection", "first" => first}, on_behalf_of)
when is_map(first),
do: process_collection(first, on_behalf_of)
@ -150,6 +169,11 @@ defmodule Mobilizon.Federation.ActivityPub.Refresher do
Transmogrifier.handle_incoming(data)
end
# If we're handling an announce activity
defp handling_element(%{"type" => "Announce"} = data) do
handling_element(get_in(data, ["object"]))
end
# If we're handling directly an object
defp handling_element(data) when is_map(data) do
object = get_in(data, ["object"])

View File

@ -13,6 +13,7 @@ defmodule Mobilizon.Federation.ActivityPub.Relay do
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.{Activity, Refresher, Transmogrifier}
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.WebFinger
alias Mobilizon.GraphQL.API.Follows
@ -37,7 +38,8 @@ defmodule Mobilizon.Federation.ActivityPub.Relay do
def follow(address) do
with {:ok, target_instance} <- fetch_actor(address),
%Actor{} = local_actor <- get_actor(),
{:ok, %Actor{} = target_actor} <- ActivityPub.get_or_fetch_actor_by_url(target_instance),
{:ok, %Actor{} = target_actor} <-
ActivityPubActor.get_or_fetch_actor_by_url(target_instance),
{:ok, activity, follow} <- Follows.follow(local_actor, target_actor) do
Logger.info("Relay: followed instance #{target_instance}; id=#{activity.data["id"]}")
{:ok, activity, follow}
@ -56,7 +58,8 @@ defmodule Mobilizon.Federation.ActivityPub.Relay do
def unfollow(address) do
with {:ok, target_instance} <- fetch_actor(address),
%Actor{} = local_actor <- get_actor(),
{:ok, %Actor{} = target_actor} <- ActivityPub.get_or_fetch_actor_by_url(target_instance),
{:ok, %Actor{} = target_actor} <-
ActivityPubActor.get_or_fetch_actor_by_url(target_instance),
{:ok, activity, follow} <- Follows.unfollow(local_actor, target_actor) do
Logger.info("Relay: unfollowed instance #{target_instance}: id=#{activity.data["id"]}")
{:ok, activity, follow}
@ -73,7 +76,8 @@ defmodule Mobilizon.Federation.ActivityPub.Relay do
with {:ok, target_instance} <- fetch_actor(address),
%Actor{} = local_actor <- get_actor(),
{:ok, %Actor{} = target_actor} <- ActivityPub.get_or_fetch_actor_by_url(target_instance),
{:ok, %Actor{} = target_actor} <-
ActivityPubActor.get_or_fetch_actor_by_url(target_instance),
{:ok, activity, follow} <- Follows.accept(target_actor, local_actor) do
{:ok, activity, follow}
end
@ -84,7 +88,8 @@ defmodule Mobilizon.Federation.ActivityPub.Relay do
with {:ok, target_instance} <- fetch_actor(address),
%Actor{} = local_actor <- get_actor(),
{:ok, %Actor{} = target_actor} <- ActivityPub.get_or_fetch_actor_by_url(target_instance),
{:ok, %Actor{} = target_actor} <-
ActivityPubActor.get_or_fetch_actor_by_url(target_instance),
{:ok, activity, follow} <- Follows.reject(target_actor, local_actor) do
{:ok, activity, follow}
end
@ -94,7 +99,8 @@ defmodule Mobilizon.Federation.ActivityPub.Relay do
Logger.debug("We're trying to refresh a remote instance")
with {:ok, target_instance} <- fetch_actor(address),
{:ok, %Actor{} = target_actor} <- ActivityPub.get_or_fetch_actor_by_url(target_instance) do
{:ok, %Actor{} = target_actor} <-
ActivityPubActor.get_or_fetch_actor_by_url(target_instance) do
Refresher.refresh_profile(target_actor)
end
end

View File

@ -18,6 +18,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.{Activity, Refresher, Relay, Utils}
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Types.Ownable
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Tombstone
@ -117,12 +118,13 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
def handle_incoming(%{
"type" => "Create",
"object" => %{"type" => "Group", "id" => group_url} = _object
}) do
Logger.info("Handle incoming to create a group")
"object" => %{"type" => type, "id" => actor_url} = _object
})
when type in ["Group", "Person", "Actor"] do
Logger.info("Handle incoming to create an actor")
with {:ok, %Actor{} = group} <- ActivityPub.get_or_fetch_actor_by_url(group_url) do
{:ok, nil, group}
with {:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(actor_url) do
{:ok, nil, actor}
end
end
@ -201,8 +203,8 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
def handle_incoming(
%{"type" => "Follow", "object" => followed, "actor" => follower, "id" => id} = _data
) do
with {:ok, %Actor{} = followed} <- ActivityPub.get_or_fetch_actor_by_url(followed, true),
{:ok, %Actor{} = follower} <- ActivityPub.get_or_fetch_actor_by_url(follower),
with {:ok, %Actor{} = followed} <- ActivityPubActor.get_or_fetch_actor_by_url(followed, true),
{:ok, %Actor{} = follower} <- ActivityPubActor.get_or_fetch_actor_by_url(follower),
{:ok, activity, object} <- ActivityPub.follow(follower, followed, id, false) do
{:ok, activity, object}
else
@ -221,7 +223,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
with {:existing_todo_list, nil} <-
{:existing_todo_list, Todos.get_todo_list_by_url(object_url)},
{:ok, %Actor{url: actor_url}} <- ActivityPub.get_or_fetch_actor_by_url(actor_url),
{:ok, %Actor{url: actor_url}} <- ActivityPubActor.get_or_fetch_actor_by_url(actor_url),
object_data when is_map(object_data) <-
object |> Converter.TodoList.as_to_model_data(),
{:ok, %Activity{} = activity, %TodoList{} = todo_list} <-
@ -295,7 +297,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
} = data
) do
with actor_url <- Utils.get_actor(data),
{:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(actor_url),
{:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(actor_url),
{:object_not_found, {:ok, %Activity{} = activity, object}} <-
{:object_not_found,
do_handle_incoming_accept_following(accepted_object, actor) ||
@ -328,7 +330,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
%{"type" => "Reject", "object" => rejected_object, "actor" => _actor, "id" => id} = data
) do
with actor_url <- Utils.get_actor(data),
{:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(actor_url),
{:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(actor_url),
{:object_not_found, {:ok, activity, object}} <-
{:object_not_found,
do_handle_incoming_reject_following(rejected_object, actor) ||
@ -359,7 +361,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
) do
with actor_url <- Utils.get_actor(data),
{:ok, %Actor{id: actor_id, suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor_url),
ActivityPubActor.get_or_fetch_actor_by_url(actor_url),
:ok <- Logger.debug("Fetching contained object"),
{:ok, entity} <- process_announce_data(object, actor),
:ok <- eventually_create_share(object, entity, actor_id) do
@ -371,14 +373,16 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
end
end
def handle_incoming(%{
"type" => "Update",
"object" => %{"type" => object_type} = object,
"actor" => _actor_id
})
def handle_incoming(
%{
"type" => "Update",
"object" => %{"type" => object_type} = object,
"actor" => _actor_id
} = params
)
when object_type in ["Person", "Group", "Application", "Service", "Organization"] do
with {:ok, %Actor{suspended: false} = old_actor} <-
ActivityPub.get_or_fetch_actor_by_url(object["id"]),
ActivityPubActor.get_or_fetch_actor_by_url(object["id"]),
object_data <-
object |> Converter.Actor.as_to_model_data(),
{:ok, %Activity{} = activity, %Actor{} = new_actor} <-
@ -386,7 +390,11 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
{:ok, activity, new_actor}
else
e ->
Logger.error(inspect(e))
Sentry.capture_message("Error while handling an Update activity",
extra: %{params: params}
)
Logger.debug(inspect(e))
:error
end
end
@ -397,7 +405,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
) do
with actor <- Utils.get_actor(update_data),
{:ok, %Actor{url: actor_url, suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:ok, %Event{} = old_event} <-
object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
object_data <- Converter.Event.as_to_model_data(object),
@ -422,7 +430,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
with actor <- Utils.get_actor(update_data),
{:ok, %Actor{url: actor_url, suspended: false}} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:origin_check, true} <- {:origin_check, Utils.origin_check?(actor_url, update_data)},
object_data <- Converter.Comment.as_to_model_data(object),
{:ok, old_entity} <- object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
@ -442,7 +450,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
) do
with actor <- Utils.get_actor(update_data),
{:ok, %Actor{url: actor_url, suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:ok, %Post{} = old_post} <-
object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
object_data <- Converter.Post.as_to_model_data(object),
@ -470,7 +478,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
when type in ["ResourceCollection", "Document"] do
with actor <- Utils.get_actor(update_data),
{:ok, %Actor{url: actor_url, suspended: false}} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:ok, %Resource{} = old_resource} <-
object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
object_data <- Converter.Resource.as_to_model_data(object),
@ -495,7 +503,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
with actor <- Utils.get_actor(update_data),
{:ok, %Actor{url: actor_url, suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:origin_check, true} <- {:origin_check, Utils.origin_check?(actor_url, update_data)},
object_data <- Converter.Member.as_to_model_data(object),
{:ok, old_entity} <- object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
@ -537,7 +545,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
} = data
) do
with actor <- Utils.get_actor(data),
{:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(actor),
{:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:ok, object} <- fetch_obj_helper_as_activity_streams(object_id),
{:ok, activity, object} <-
ActivityPub.unannounce(actor, object, id, cancelled_activity_id, false) do
@ -555,8 +563,9 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
"id" => id
} = _data
) do
with {:ok, %Actor{domain: nil} = followed} <- ActivityPub.get_or_fetch_actor_by_url(followed),
{:ok, %Actor{} = follower} <- ActivityPub.get_or_fetch_actor_by_url(follower),
with {:ok, %Actor{domain: nil} = followed} <-
ActivityPubActor.get_or_fetch_actor_by_url(followed),
{:ok, %Actor{} = follower} <- ActivityPubActor.get_or_fetch_actor_by_url(follower),
{:ok, activity, object} <- ActivityPub.unfollow(follower, followed, id, false) do
{:ok, activity, object}
else
@ -572,7 +581,8 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
%{"type" => "Delete", "object" => object, "actor" => _actor, "id" => _id} = data
) do
with actor_url <- Utils.get_actor(data),
{:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(actor_url),
{:actor, {:ok, %Actor{} = actor}} <-
{:actor, ActivityPubActor.get_or_fetch_actor_by_url(actor_url)},
object_id <- Utils.get_url(object),
{:ok, object} <- is_group_object_gone(object_id),
{:origin_check, true} <-
@ -586,8 +596,25 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
Logger.warn("Object origin check failed")
:error
{:actor, {:error, "Could not fetch by AP id"}} ->
{:error, :unknown_actor}
{:error, e} ->
Logger.debug(inspect(e))
# Sentry.capture_message("Error while handling a Delete activity",
# extra: %{data: data}
# )
:error
e ->
Logger.error(inspect(e))
# Sentry.capture_message("Error while handling a Delete activity",
# extra: %{data: data}
# )
:error
end
end
@ -598,7 +625,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
when type in ["ResourceCollection", "Document"] do
with actor <- Utils.get_actor(data),
{:ok, %Actor{url: actor_url, suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
{:ok, %Resource{} = old_resource} <-
object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
object_data <- Converter.Resource.as_to_model_data(object),
@ -610,7 +637,12 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
{:ok, activity, new_resource}
else
e ->
Logger.error(inspect(e))
Logger.debug(inspect(e))
Sentry.capture_message("Error while handling an Move activity",
extra: %{data: data}
)
:error
end
end
@ -625,7 +657,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
) do
with actor <- Utils.get_actor(data),
{:ok, %Actor{url: _actor_url, suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor),
ActivityPubActor.get_or_fetch_actor_by_url(actor),
object <- Utils.get_url(object),
{:ok, object} <- ActivityPub.fetch_object_from_url(object),
{:ok, activity, object} <-
@ -643,7 +675,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
def handle_incoming(%{"type" => "Leave", "object" => object, "actor" => actor} = data) do
with actor <- Utils.get_actor(data),
{:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(actor),
{:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(actor),
object <- Utils.get_url(object),
{:ok, object} <- ActivityPub.fetch_object_from_url(object),
{:ok, activity, object} <- ActivityPub.leave(object, actor, false) do
@ -673,10 +705,10 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
Logger.info("Handle incoming to invite someone")
with {:ok, %Actor{} = actor} <-
data |> Utils.get_actor() |> ActivityPub.get_or_fetch_actor_by_url(),
data |> Utils.get_actor() |> ActivityPubActor.get_or_fetch_actor_by_url(),
{:ok, object} <- object |> Utils.get_url() |> ActivityPub.fetch_object_from_url(),
{:ok, %Actor{} = target} <-
target |> Utils.get_url() |> ActivityPub.get_or_fetch_actor_by_url(),
target |> Utils.get_url() |> ActivityPubActor.get_or_fetch_actor_by_url(),
{:ok, activity, %Member{} = member} <-
ActivityPub.invite(object, actor, target, false, %{url: id}) do
{:ok, activity, member}
@ -689,10 +721,10 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
Logger.info("Handle incoming to remove a member from a group")
with {:ok, %Actor{id: moderator_id} = moderator} <-
data |> Utils.get_actor() |> ActivityPub.get_or_fetch_actor_by_url(),
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() |> ActivityPub.get_or_fetch_actor_by_url(),
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)},
@ -741,6 +773,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
def handle_incoming(object) do
Logger.info("Handing something with type #{object["type"]} not supported")
Logger.debug(inspect(object))
{:error, :not_supported}
end

View File

@ -14,6 +14,7 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.{Activity, Federator, Relay}
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Types.Ownable
alias Mobilizon.Federation.ActivityStream.Converter
alias Mobilizon.Federation.HTTPSignatures
@ -175,7 +176,7 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
@spec remote_actors(list(String.t())) :: list(Actor.t())
def remote_actors(recipients) do
recipients
|> Enum.map(fn url -> ActivityPub.get_or_fetch_actor_by_url(url) end)
|> Enum.map(fn url -> ActivityPubActor.get_or_fetch_actor_by_url(url) end)
|> Enum.map(fn {status, actor} ->
case status do
:ok ->
@ -259,7 +260,9 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
are_same_origin?(id, actor)
end
def origin_check?(_id, %{"type" => type} = _params) when type in ["Actor", "Group"], do: true
def origin_check?(id, %{"type" => type, "id" => actor_id} = _params)
when type in ["Actor", "Person", "Group"],
do: id == actor_id
def origin_check?(_id, %{"actor" => nil} = _args), do: false
@ -701,4 +704,42 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
true
end
end
@spec label_in_collection?(any(), any()) :: boolean()
defp label_in_collection?(url, coll) when is_binary(coll), do: url == coll
defp label_in_collection?(url, coll) when is_list(coll), do: url in coll
defp label_in_collection?(_, _), do: false
@spec label_in_message?(String.t(), map()) :: boolean()
def label_in_message?(label, params),
do:
[params["to"], params["cc"], params["bto"], params["bcc"]]
|> Enum.any?(&label_in_collection?(label, &1))
@spec unaddressed_message?(map()) :: boolean()
def unaddressed_message?(params),
do:
[params["to"], params["cc"], params["bto"], params["bcc"]]
|> Enum.all?(&is_nil(&1))
@spec recipient_in_message(Actor.t(), Actor.t(), map()) :: boolean()
def recipient_in_message(%Actor{url: url} = _recipient, %Actor{} = _actor, params),
do: label_in_message?(url, params) || unaddressed_message?(params)
defp extract_list(target) when is_binary(target), do: [target]
defp extract_list(lst) when is_list(lst), do: lst
defp extract_list(_), do: []
def maybe_splice_recipient(url, params) do
need_splice? =
!label_in_collection?(url, params["to"]) &&
!label_in_collection?(url, params["cc"])
if need_splice? do
cc_list = extract_list(params["cc"])
Map.put(params, "cc", [url | cc_list])
else
params
end
end
end

View File

@ -8,7 +8,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Discussion do
alias Mobilizon.Actors.Actor
alias Mobilizon.Discussions.Discussion
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Federation.ActivityStream.Converter.Discussion, as: DiscussionConverter
alias Mobilizon.Storage.Repo
@ -49,10 +49,10 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Discussion do
def as_to_model_data(%{"type" => "Note", "name" => name} = object) when not is_nil(name) do
with creator_url <- Map.get(object, "actor"),
{:ok, %Actor{id: creator_id, suspended: false}} <-
ActivityPub.get_or_fetch_actor_by_url(creator_url),
ActivityPubActor.get_or_fetch_actor_by_url(creator_url),
actor_url <- Map.get(object, "attributedTo"),
{:ok, %Actor{id: actor_id, suspended: false}} <-
ActivityPub.get_or_fetch_actor_by_url(actor_url) do
ActivityPubActor.get_or_fetch_actor_by_url(actor_url) do
%{
title: name,
actor_id: actor_id,

View File

@ -14,7 +14,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Flag do
alias Mobilizon.Events.Event
alias Mobilizon.Reports.Report
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Relay
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
@ -65,10 +65,11 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Flag do
@spec as_to_model(map) :: map
def as_to_model(%{"object" => objects} = object) do
with {:ok, %Actor{} = reporter} <- ActivityPub.get_or_fetch_actor_by_url(object["actor"]),
with {:ok, %Actor{} = reporter} <-
ActivityPubActor.get_or_fetch_actor_by_url(object["actor"]),
%Actor{} = reported <-
Enum.reduce_while(objects, nil, fn url, _ ->
case ActivityPub.get_or_fetch_actor_by_url(url) do
case ActivityPubActor.get_or_fetch_actor_by_url(url) do
{:ok, %Actor{} = actor} ->
{:halt, actor}

View File

@ -8,7 +8,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Member do
alias Mobilizon.Actors.Actor
alias Mobilizon.Actors.Member, as: MemberModel
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Utils
alias Mobilizon.Federation.ActivityStream.Convertible
@ -53,5 +53,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Member do
@spec get_actor(String.t() | map() | nil) :: {:ok, Actor.t()} | {:error, String.t()}
defp get_actor(nil), do: {:error, "nil property found for actor data"}
defp get_actor(actor), do: actor |> Utils.get_url() |> ActivityPub.get_or_fetch_actor_by_url()
defp get_actor(actor),
do: actor |> Utils.get_url() |> ActivityPubActor.get_or_fetch_actor_by_url()
end

View File

@ -6,7 +6,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Post do
internal one, and back.
"""
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.{Audience, Utils}
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Federation.ActivityStream.Converter.Media, as: MediaConverter
@ -91,7 +91,9 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Post do
@spec get_actor(String.t() | map() | nil) :: {:ok, Actor.t()} | {:error, String.t()}
defp get_actor(nil), do: {:error, "nil property found for actor data"}
defp get_actor(actor), do: actor |> Utils.get_url() |> ActivityPub.get_or_fetch_actor_by_url()
defp get_actor(actor),
do: actor |> Utils.get_url() |> ActivityPubActor.get_or_fetch_actor_by_url()
defp to_date(nil), do: nil
defp to_date(%DateTime{} = date), do: DateTime.to_iso8601(date)

View File

@ -7,6 +7,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Resource do
"""
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Utils
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Resources
@ -88,7 +89,9 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Resource do
@spec get_actor(String.t() | map() | nil) :: {:ok, Actor.t()} | {:error, String.t()}
defp get_actor(nil), do: {:error, "nil property found for actor data"}
defp get_actor(actor), do: actor |> Utils.get_url() |> ActivityPub.get_or_fetch_actor_by_url()
defp get_actor(actor),
do: actor |> Utils.get_url() |> ActivityPubActor.get_or_fetch_actor_by_url()
defp get_context(%Resource{parent_id: nil, actor: %Actor{resources_url: resources_url}}),
do: resources_url

View File

@ -7,6 +7,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Todo do
"""
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Todos
alias Mobilizon.Todos.{Todo, TodoList}
@ -51,7 +52,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Todo do
%{"type" => "Todo", "actor" => actor_url, "todoList" => todo_list_url} = object
) do
with {:ok, %Actor{id: creator_id} = _creator} <-
ActivityPub.get_or_fetch_actor_by_url(actor_url),
ActivityPubActor.get_or_fetch_actor_by_url(actor_url),
{:todo_list, %TodoList{id: todo_list_id}} <-
{:todo_list, Todos.get_todo_list_by_url(todo_list_url)} do
%{

View File

@ -6,7 +6,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.TodoList do
internal one, and back.
"""
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityStream.{Converter, Convertible}
alias Mobilizon.Todos.TodoList
@ -39,7 +39,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.TodoList do
@impl Converter
@spec as_to_model_data(map) :: {:ok, map} | {:error, any()}
def as_to_model_data(%{"type" => "TodoList", "actor" => actor_url} = object) do
case ActivityPub.get_or_fetch_actor_by_url(actor_url) do
case ActivityPubActor.get_or_fetch_actor_by_url(actor_url) do
{:ok, %Actor{type: :Group, id: group_id} = _group} ->
%{
title: object["name"],

View File

@ -10,7 +10,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Utils do
alias Mobilizon.Mention
alias Mobilizon.Storage.Repo
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityStream.Converter.Media, as: MediaConverter
alias Mobilizon.Web.Endpoint
@ -114,7 +114,8 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Utils do
@spec create_mention(map(), list()) :: list()
defp create_mention(mention, acc) when is_map(mention) do
with true <- mention["type"] == "Mention",
{:ok, %Actor{id: actor_id}} <- ActivityPub.get_or_fetch_actor_by_url(mention["href"]) do
{:ok, %Actor{id: actor_id}} <-
ActivityPubActor.get_or_fetch_actor_by_url(mention["href"]) do
acc ++ [%{actor_id: actor_id}]
else
_err ->
@ -169,7 +170,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Utils do
@spec fetch_actor(String.t()) :: Actor.t()
defp fetch_actor(actor_url) do
with {:ok, %Actor{suspended: false} = actor} <-
ActivityPub.get_or_fetch_actor_by_url(actor_url) do
ActivityPubActor.get_or_fetch_actor_by_url(actor_url) do
actor
end
end

View File

@ -12,7 +12,7 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
require Logger
@ -50,9 +50,10 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
# Gets a public key for a given ActivityPub actor ID (url).
@spec get_public_key_for_url(String.t()) ::
{:ok, String.t()} | {:error, :actor_fetch_error | :pem_decode_error}
{:ok, String.t()}
| {:error, :actor_fetch_error | :pem_decode_error | :actor_not_fetchable}
defp get_public_key_for_url(url) do
with {:ok, %Actor{keys: keys}} <- ActivityPub.get_or_fetch_actor_by_url(url),
with {:ok, %Actor{keys: keys}} <- ActivityPubActor.get_or_fetch_actor_by_url(url),
{:ok, public_key} <- prepare_public_key(keys) do
{:ok, public_key}
else
@ -61,8 +62,16 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
{:error, :pem_decode_error}
_ ->
{:error, "Could not fetch by AP id"} ->
{:error, :actor_not_fetchable}
err ->
Sentry.capture_message("Unable to fetch actor, so no keys for you",
extra: %{url: url}
)
Logger.error("Unable to fetch actor, so no keys for you")
Logger.error(inspect(err))
{:error, :actor_fetch_error}
end
@ -74,9 +83,6 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
:ok <- Logger.debug("Fetching public key for #{actor_id}"),
{:ok, public_key} <- get_public_key_for_url(actor_id) do
{:ok, public_key}
else
e ->
{:error, e}
end
end
@ -84,12 +90,9 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
with %{"keyId" => kid} <- HTTPSignatures.signature_for_conn(conn),
actor_id <- key_id_to_actor_url(kid),
:ok <- Logger.debug("Refetching public key for #{actor_id}"),
{:ok, _actor} <- ActivityPub.make_actor_from_url(actor_id),
{:ok, _actor} <- ActivityPubActor.make_actor_from_url(actor_id),
{:ok, public_key} <- get_public_key_for_url(actor_id) do
{:ok, public_key}
else
e ->
{:error, e}
end
end

View File

@ -10,7 +10,7 @@ defmodule Mobilizon.Federation.WebFinger do
alias Mobilizon.Actors
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.WebFinger.XmlBuilder
alias Mobilizon.Service.HTTP.{HostMetaClient, WebfingerClient}
alias Mobilizon.Web.Endpoint
@ -56,7 +56,7 @@ defmodule Mobilizon.Federation.WebFinger do
{:ok, represent_actor(actor, "JSON")}
else
_e ->
case ActivityPub.get_or_fetch_actor_by_url(resource) do
case ActivityPubActor.get_or_fetch_actor_by_url(resource) do
{:ok, %Actor{} = actor} when not is_nil(actor) ->
{:ok, represent_actor(actor, "JSON")}

View File

@ -10,6 +10,7 @@ defmodule Mobilizon.GraphQL.API.Search do
alias Mobilizon.Storage.Page
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
require Logger
@ -92,7 +93,7 @@ defmodule Mobilizon.GraphQL.API.Search do
# If the search string is an username
@spec process_from_username(String.t()) :: Page.t()
defp process_from_username(search) do
case ActivityPub.find_or_make_actor_from_nickname(search) do
case ActivityPubActor.find_or_make_actor_from_nickname(search) do
{:ok, actor} ->
%Page{total: 1, elements: [actor]}

View File

@ -27,7 +27,8 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
%{context: %{current_user: %User{role: role}}}
)
when is_moderator(role) do
with action_logs <- Mobilizon.Admin.list_action_logs(page, limit) do
with %Page{elements: action_logs, total: total} <-
Mobilizon.Admin.list_action_logs(page, limit) do
action_logs =
action_logs
|> Enum.map(fn %ActionLog{
@ -44,7 +45,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
end)
|> Enum.filter(& &1)
{:ok, action_logs}
{:ok, %Page{elements: action_logs, total: total}}
end
end

View File

@ -142,7 +142,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
else
{:actor_approve_permission, _} ->
{:error,
dgettext("errors", "Provided moderator profile doesn't have permission on this event")}
dgettext("errors", "Provided profile doesn't have moderator permissions on this event")}
end
end

View File

@ -7,6 +7,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
alias Mobilizon.{Actors, Events, Users}
alias Mobilizon.Actors.{Actor, Member}
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.GraphQL.API
alias Mobilizon.Users.User
alias Mobilizon.Web.Upload
@ -27,7 +28,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
}
) do
with {:group, {:ok, %Actor{id: group_id, suspended: false} = group}} <-
{:group, ActivityPub.find_or_make_group_from_nickname(name)},
{:group, ActivityPubActor.find_or_make_group_from_nickname(name)},
{:actor, %Actor{id: actor_id} = _actor} <- {:actor, Users.get_actor_for_user(user)},
{:member, true} <- {:member, Actors.is_member?(actor_id, group_id)} do
{:ok, group}
@ -45,7 +46,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
def find_group(_parent, %{preferred_username: name}, _resolution) do
with {:ok, %Actor{suspended: false} = actor} <-
ActivityPub.find_or_make_group_from_nickname(name),
ActivityPubActor.find_or_make_group_from_nickname(name),
%Actor{} = actor <- restrict_fields_for_non_member_request(actor) do
{:ok, actor}
else

View File

@ -7,7 +7,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
alias Mobilizon.{Actors, Users}
alias Mobilizon.Actors.{Actor, Member}
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Refresher
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Storage.Page
alias Mobilizon.Users.User
import Mobilizon.Web.Gettext
@ -70,7 +70,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
target_actor_username |> String.trim() |> String.trim_leading("@"),
{:target_actor_username, {:ok, %Actor{id: target_actor_id} = target_actor}} <-
{:target_actor_username,
ActivityPub.find_or_make_actor_from_nickname(target_actor_username)},
ActivityPubActor.find_or_make_actor_from_nickname(target_actor_username)},
{:existant, true} <-
{:existant, check_member_not_existant_or_rejected(target_actor_id, group.id)},
{:ok, _activity, %Member{} = member} <- ActivityPub.invite(group, actor, target_actor) do
@ -99,7 +99,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
def accept_invitation(_parent, %{id: member_id}, %{context: %{current_user: %User{} = user}}) do
with %Actor{id: actor_id} <- Users.get_actor_for_user(user),
%Member{actor: %Actor{id: member_actor_id} = actor} = member <-
%Member{actor: %Actor{id: member_actor_id}} = member <-
Actors.get_member(member_id),
{:is_same_actor, true} <- {:is_same_actor, member_actor_id === actor_id},
{:ok, _activity, %Member{} = member} <-
@ -108,8 +108,6 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
member,
true
) do
# Launch an async task to refresh the group profile, fetch resources, discussions, members
Refresher.fetch_group(member.parent.url, actor)
{:ok, member}
else
{:is_same_actor, false} ->

View File

@ -231,7 +231,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Participant do
{:actor_approve_permission, _} ->
{:error,
dgettext("errors", "Provided moderator profile doesn't have permission on this event")}
dgettext("errors", "Provided profile doesn't have moderator permissions on this event")}
{:same_role, true} ->
{:error, dgettext("errors", "Participant already has role %{role}", role: new_role)}

View File

@ -13,6 +13,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Person do
import Mobilizon.Web.Gettext
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
require Logger
alias Mobilizon.Web.Upload
@ -39,7 +40,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Person do
context: %{current_user: %User{} = user}
}) do
with {:ok, %Actor{id: actor_id} = actor} <-
ActivityPub.find_or_make_actor_from_nickname(preferred_username),
ActivityPubActor.find_or_make_actor_from_nickname(preferred_username),
{:own, {:is_owned, _}} <- {:own, User.owns_actor(user, actor_id)} do
{:ok, actor}
else

View File

@ -29,7 +29,7 @@ defmodule Mobilizon.GraphQL.Schema.Actors.GroupType do
Represents a group of actors
"""
object :group do
interfaces([:actor, :interactable, :activity_object])
interfaces([:actor, :interactable, :activity_object, :action_log_object])
field(:id, :id, description: "Internal ID for this group")
field(:url, :string, description: "The ActivityPub actor's URL")

View File

@ -22,6 +22,14 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
field(:inserted_at, :datetime, description: "The time when the action was performed")
end
@desc """
A paginated list of action logs
"""
object :paginated_action_log_list do
field(:elements, list_of(:action_log), description: "A list of action logs")
field(:total, :integer, description: "The total number of action logs in the list")
end
@desc """
The different types of action log actions
"""
@ -62,6 +70,9 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
%User{}, _ ->
:user
%Actor{type: "Group"}, _ ->
:group
_, _ ->
nil
end)
@ -144,7 +155,7 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
object :admin_queries do
@desc "Get the list of action logs"
field :action_logs, type: list_of(:action_log) do
field :action_logs, type: :paginated_action_log_list do
arg(:page, :integer, default_value: 1)
arg(:limit, :integer, default_value: 10)
resolve(&Admin.list_action_logs/3)

View File

@ -6,7 +6,7 @@ defmodule Mobilizon.GraphQL.Schema.Discussions.CommentType do
import Absinthe.Resolution.Helpers, only: [dataloader: 1]
alias Mobilizon.{Actors, Discussions}
alias Mobilizon.{Actors, Discussions, Events}
alias Mobilizon.GraphQL.Resolvers.Comment
@desc "A comment"

View File

@ -4,7 +4,7 @@ defmodule Mix.Tasks.Mobilizon.Actors.Refresh do
"""
use Mix.Task
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Storage.Repo
import Ecto.Query
import Mix.Tasks.Mobilizon.Common
@ -65,7 +65,7 @@ defmodule Mix.Tasks.Mobilizon.Actors.Refresh do
def run([preferred_username]) do
start_mobilizon()
case ActivityPub.make_actor_from_nickname(preferred_username) do
case ActivityPubActor.make_actor_from_nickname(preferred_username) do
{:ok, %Actor{}} ->
shell_info("""
Actor #{preferred_username} refreshed
@ -89,7 +89,7 @@ defmodule Mix.Tasks.Mobilizon.Actors.Refresh do
@spec make_actor(String.t(), boolean()) :: any()
defp make_actor(username, verbose) do
ActivityPub.make_actor_from_nickname(username)
ActivityPubActor.make_actor_from_nickname(username)
rescue
_ ->
if verbose do

View File

@ -333,28 +333,33 @@ defmodule Mobilizon.Actors do
|> Multi.run(:remove_avatar, fn _, _ -> remove_avatar(actor) end)
multi =
if type == :Group do
multi
|> Multi.run(:delete_remote_members, fn _, _ ->
delete_group_elements(actor, :remote_members)
end)
|> Multi.run(:delete_group_organized_events, fn _, _ ->
delete_group_elements(actor, :events)
end)
|> Multi.run(:delete_group_posts, fn _, _ ->
delete_group_elements(actor, :posts)
end)
|> Multi.run(:delete_group_resources, fn _, _ ->
delete_group_elements(actor, :resources)
end)
|> Multi.run(:delete_group_todo_lists, fn _, _ ->
delete_group_elements(actor, :todo_lists)
end)
|> Multi.run(:delete_group_discussions, fn _, _ ->
delete_group_elements(actor, :discussions)
end)
else
multi
case type do
:Group ->
multi
|> Multi.run(:delete_remote_members, fn _, _ ->
delete_group_elements(actor, :remote_members)
end)
|> Multi.run(:delete_group_organized_events, fn _, _ ->
delete_group_elements(actor, :events)
end)
|> Multi.run(:delete_group_posts, fn _, _ ->
delete_group_elements(actor, :posts)
end)
|> Multi.run(:delete_group_resources, fn _, _ ->
delete_group_elements(actor, :resources)
end)
|> Multi.run(:delete_group_todo_lists, fn _, _ ->
delete_group_elements(actor, :todo_lists)
end)
|> Multi.run(:delete_group_discussions, fn _, _ ->
delete_group_elements(actor, :discussions)
end)
:Person ->
# When deleting a profile, reset default_actor_id
Multi.run(multi, :reset_default_actor_id, fn _, _ ->
reset_default_actor_id(actor)
end)
end
multi =
@ -374,12 +379,22 @@ defmodule Mobilizon.Actors do
{:error, remove, error, _} when remove in [:remove_banner, :remove_avatar] ->
Logger.error("Error while deleting actor's banner or avatar")
Logger.error(inspect(error, pretty: true))
Sentry.capture_message("Error while deleting actor's banner or avatar",
extra: %{err: error}
)
Logger.debug(inspect(error, pretty: true))
{:error, error}
err ->
Logger.error("Unknown error while deleting actor")
Logger.error(inspect(err, pretty: true))
Sentry.capture_message("Error while deleting actor's banner or avatar",
extra: %{err: err}
)
Logger.debug(inspect(err, pretty: true))
{:error, err}
end
end
@ -652,10 +667,11 @@ defmodule Mobilizon.Actors do
@doc """
Lists the groups.
"""
@spec list_groups_for_stream :: Enum.t()
def list_external_groups_for_stream do
@spec list_external_groups(non_neg_integer()) :: list(Actor.t())
def list_external_groups(limit \\ 100) when limit > 0 do
external_groups_query()
|> Repo.stream()
|> limit(^limit)
|> Repo.all()
end
@doc """
@ -1814,6 +1830,24 @@ defmodule Mobilizon.Actors do
end
end
@spec reset_default_actor_id(Actor.t()) :: {:ok, User.t()} | {:error, :user_not_found}
defp reset_default_actor_id(%Actor{type: :Person, user: %User{id: user_id} = user, id: actor_id}) do
Logger.debug("reset_default_actor_id")
new_actor_id =
user
|> Users.get_actors_for_user()
|> Enum.map(& &1.id)
|> Enum.find(&(&1 !== actor_id))
{:ok, Users.update_user_default_actor(user_id, new_actor_id)}
rescue
_e in Ecto.NoResultsError ->
{:error, :user_not_found}
end
defp reset_default_actor_id(%Actor{type: :Person, user: nil}), do: {:ok, nil}
defp accumulate_paginated_elements(
%Actor{} = actor,
method,

View File

@ -63,6 +63,7 @@ defmodule Mobilizon.Addresses.Address do
|> cast(attrs, @attrs)
|> set_url()
|> validate_required(@required_attrs)
|> unique_constraint(:url, name: :addresses_url_index)
end
@spec set_url(Ecto.Changeset.t()) :: Ecto.Changeset.t()

View File

@ -36,11 +36,10 @@ defmodule Mobilizon.Admin do
@doc """
Returns the list of action logs.
"""
@spec list_action_logs(integer | nil, integer | nil) :: [ActionLog.t()]
@spec list_action_logs(integer | nil, integer | nil) :: Page.t()
def list_action_logs(page \\ nil, limit \\ nil) do
list_action_logs_query()
|> Page.paginate(page, limit)
|> Repo.all()
|> Page.build_page(page, limit)
end
@doc """

View File

@ -208,7 +208,7 @@ defmodule Mobilizon.Service.RichMedia.Parser do
defp check_parsed_data(%{title: title} = data)
when is_binary(title) and byte_size(title) > 0 do
{:ok, data}
data
end
defp check_parsed_data(data) do
@ -285,15 +285,20 @@ defmodule Mobilizon.Service.RichMedia.Parser do
image_remote_url =
cond do
is_nil(image_uri.host) -> "#{uri.scheme}://#{uri.host}#{image_remote_url}"
is_nil(image_uri.host) -> "#{uri.scheme}://#{uri.host}#{correct_path(image_remote_url)}"
is_nil(image_uri.scheme) -> "#{uri.scheme}:#{image_remote_url}"
true -> image_remote_url
end
Map.put(data, :image_remote_url, image_remote_url)
data = Map.put(data, :image_remote_url, image_remote_url)
{:ok, data}
end
defp check_remote_picture_path(data), do: data
defp check_remote_picture_path(data), do: {:ok, data}
# Sometimes paths have "/" in front, sometimes not
defp correct_path("/" <> _ = path), do: path
defp correct_path(path), do: "/#{path}"
# Twitter requires a well-know crawler user-agent to show server-rendered data
defp default_user_agent("https://twitter.com/" <> _) do

View File

@ -10,7 +10,8 @@ defmodule Mobilizon.Web.ActivityPubController do
alias Mobilizon.Actors.{Actor, Member}
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Federator
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.{Federator, Utils}
alias Mobilizon.Web.ActivityPub.ActorView
alias Mobilizon.Web.Cache
@ -105,7 +106,17 @@ defmodule Mobilizon.Web.ActivityPubController do
actor_collection(conn, "outbox", args)
end
# TODO: Ensure that this inbox is a recipient of the message
def inbox(%{assigns: %{valid_signature: true}} = conn, %{"name" => preferred_username} = params) do
with %Actor{url: recipient_url} = recipient <-
Actors.get_local_actor_by_name(preferred_username),
{:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(params["actor"]),
true <- Utils.recipient_in_message(recipient, actor, params),
params <- Utils.maybe_splice_recipient(recipient_url, params) do
Federator.enqueue(:incoming_ap_doc, params)
json(conn, "ok")
end
end
def inbox(%{assigns: %{valid_signature: true}} = conn, params) do
Logger.debug("Got something with valid signature inside inbox")
Federator.enqueue(:incoming_ap_doc, params)
@ -114,7 +125,7 @@ defmodule Mobilizon.Web.ActivityPubController do
# only accept relayed Creates
def inbox(conn, %{"type" => "Create"} = params) do
Logger.info(
Logger.debug(
"Signature missing or not from author, relayed Create message, fetching object from source"
)
@ -126,8 +137,9 @@ defmodule Mobilizon.Web.ActivityPubController do
def inbox(conn, params) do
headers = Enum.into(conn.req_headers, %{})
if String.contains?(headers["signature"], params["actor"]) do
Logger.error(
if headers["signature"] && params["actor"] &&
String.contains?(headers["signature"], params["actor"]) do
Logger.debug(
"Signature validation error for: #{params["actor"]}, make sure you are forwarding the HTTP Host header!"
)

View File

@ -5,7 +5,6 @@ defmodule Mobilizon.Web.Email do
use Bamboo.Phoenix, view: Mobilizon.Web.EmailView
alias Ecto.UUID
alias Mobilizon.{Config, Events}
alias Mobilizon.Events.Event
alias Mobilizon.Service.Export.ICalendar
@ -19,27 +18,27 @@ defmodule Mobilizon.Web.Email do
|> new_email()
|> from({Config.instance_name(), Config.instance_email_from()})
|> put_header("Reply-To", Config.instance_email_reply_to())
|> put_header("Date", date())
|> put_header("Message-Id", message_id())
|> maybe_put_date_header()
|> maybe_put_message_id()
|> assign(:instance, instance)
|> put_html_layout({EmailView, "email.html"})
|> put_text_layout({EmailView, "email.text"})
end
# Generating an UUID randomly causes Bamboo.Test.assert_delivered_email/1 to fail
defp message_id do
defp maybe_put_message_id(email) do
if Application.fetch_env!(:mobilizon, :env) == :test do
"TEST_ENV_MESSAGE_ID@#{Config.instance_hostname()}"
put_header(email, "Message-Id", "TEST_ENV_MESSAGE_ID@#{Config.instance_hostname()}")
else
"#{UUID.generate()}@#{Config.instance_hostname()}"
email
end
end
defp date do
defp maybe_put_date_header(email) do
if Application.fetch_env!(:mobilizon, :env) == :test do
"REMOVED FOR TESTING"
put_header(email, "Date", "REMOVED FOR TESTING")
else
Timex.format!(DateTime.utc_now(), "{WDshort}, {D} {Mshort} {YYYY} {h24}:{m}:{s} {Z}")
email
end
end

View File

@ -12,7 +12,7 @@ defmodule Mobilizon.Web.Plugs.MappedSignatureToIdentity do
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.Federation.ActivityPub.Utils
alias Mobilizon.Federation.HTTPSignatures.Signature
@ -34,7 +34,7 @@ defmodule Mobilizon.Web.Plugs.MappedSignatureToIdentity do
@spec actor_from_key_id(Plug.Conn.t()) :: Actor.t() | nil
defp actor_from_key_id(conn) do
with key_actor_id when is_binary(key_actor_id) <- key_id_from_conn(conn),
{:ok, %Actor{} = actor} <- ActivityPub.get_or_fetch_actor_by_url(key_actor_id) do
{:ok, %Actor{} = actor} <- ActivityPubActor.get_or_fetch_actor_by_url(key_actor_id) do
actor
else
_ ->

View File

@ -37,9 +37,6 @@
<p style="margin: 0;">
<%= gettext("The email address for your account on <b>%{host}</b> is being changed to:", host: @instance[:name]) |> raw %>
</p>
<p>
<%= gettext("If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}.", host: @instance[:name]) %>
</p>
</td>
</tr>
<tr>

View File

@ -47,6 +47,14 @@ defmodule Mobilizon.Web.ErrorView do
%{msg: "Not acceptable"}
end
def render("500.json", assigns) do
render("500.html", assigns)
end
def render("500.activity-json", assigns) do
render("500.html", assigns)
end
def render("500.html", assigns) do
Mobilizon.Config.instance_config()
|> Keyword.get(:default_language, "en")

View File

@ -1,7 +1,7 @@
defmodule Mobilizon.Mixfile do
use Mix.Project
@version "1.1.1"
@version "1.1.2"
def project do
[
@ -119,7 +119,7 @@ defmodule Mobilizon.Mixfile do
{:http_sign, "~> 0.1.1"},
{:ecto_enum, "~> 1.4"},
{:ex_ical, "~> 0.2"},
{:bamboo, "~> 2.1", override: true},
{:bamboo, "~> 2.1"},
{:bamboo_phoenix, "~> 1.0"},
{:bamboo_smtp, "~> 4.0"},
{:geolix, "~> 2.0"},

View File

@ -1,12 +1,12 @@
%{
"absinthe": {:hex, :absinthe, "1.6.4", "d2958908b72ce146698de8ccbc03622630471eb0e354e06823aaef183e5067bd", [:mix], [{:dataloader, "~> 1.0.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6e9c1cf36d86c704cb9a9c78db62d1c2676b03e0f61a28a23fc42749e8cd41ae"},
"absinthe_phoenix": {:hex, :absinthe_phoenix, "2.0.1", "112cb3468db2748a85bd8bd3f4d6d33f37408a96cb170077026ace96ddb1bab2", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:absinthe_plug, "~> 1.5", [hex: :absinthe_plug, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.5", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.13", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}], "hexpm", "e773adc876fbc84fb05a82e125d9c263f129520b36e5576554ffcb8cf49db445"},
"absinthe_plug": {:hex, :absinthe_plug, "1.5.7", "c9954c5eff0a11be185f73987533d38d6aa44ca6bd5253de32de099f82996ce5", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "2e7d766c5b3ec57aed06db0d420674bc0ff6998c55c85f5fb9bb0d3dcf7ad20d"},
"absinthe_plug": {:hex, :absinthe_plug, "1.5.8", "38d230641ba9dca8f72f1fed2dfc8abd53b3907d1996363da32434ab6ee5d6ab", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bbb04176647b735828861e7b2705465e53e2cf54ccf5a73ddd1ebd855f996e5a"},
"argon2_elixir": {:hex, :argon2_elixir, "2.4.0", "2a22ea06e979f524c53b42b598fc6ba38cdcbc977a155e33e057732cfb1fb311", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "4ea82e183cf8e7f66dab1f767fedcfe6a195e140357ef2b0423146b72e0a551d"},
"atomex": {:hex, :atomex, "0.4.1", "7d3910ff7795db91b9af9f8d3e65af7ac69f235adf03484995fc667a36f3edc5", [:mix], [{:xml_builder, "~> 2.1", [hex: :xml_builder, repo: "hexpm", optional: false]}], "hexpm", "f3ac737f7493d42cfddf917f3ac49d60e0a0cf1a35c0712851b07fe8c0a05c7a"},
"bamboo": {:hex, :bamboo, "2.1.0", "3c58f862efd74fa8c8d48a410ac592b41f7d24785e828566f7a0af549269ddc3", [:mix], [{:hackney, ">= 1.15.2", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.4", [hex: :mime, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "f0ad2623b9a1d2dc06dcf289b59df9ebc522f49f3a21971ec87a8fce04e6d33e"},
"bamboo_phoenix": {:hex, :bamboo_phoenix, "1.0.0", "f3cc591ffb163ed0bf935d256f1f4645cd870cf436545601215745fb9cc9953f", [:mix], [{:bamboo, ">= 2.0.0", [hex: :bamboo, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.3.0", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "6db88fbb26019c84a47994bb2bd879c0887c29ce6c559bc6385fd54eb8b37dee"},
"bamboo_smtp": {:hex, :bamboo_smtp, "4.0.0", "0cc7df161d5d440d280a6d2eb20bf80bc45ea77161728a229e5ab339dcd087cd", [:mix], [{:bamboo, "~> 2.0.0", [hex: :bamboo, repo: "hexpm", optional: false]}, {:gen_smtp, "~> 1.1.0", [hex: :gen_smtp, repo: "hexpm", optional: false]}], "hexpm", "2412015092121b9f24f3f2e654bcd98e5c5f9afb323a94f8defa22e70ba8f23d"},
"bamboo_smtp": {:hex, :bamboo_smtp, "4.0.1", "7e48188663f6164a81183688bb263be4c3952648fcd3ce52164f44d68777f9cd", [:mix], [{:bamboo, "~> 2.1.0", [hex: :bamboo, repo: "hexpm", optional: false]}, {:gen_smtp, "~> 1.1.1", [hex: :gen_smtp, repo: "hexpm", optional: false]}], "hexpm", "7ff1d62ae39bfb1c14f6d3cddba0fa1482a45c2a2b497a2da601eff7099605c8"},
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"},
"cachex": {:hex, :cachex, "3.3.0", "6f2ebb8f27491fe39121bd207c78badc499214d76c695658b19d6079beeca5c2", [:mix], [{:eternal, "~> 1.2", [hex: :eternal, repo: "hexpm", optional: false]}, {:jumper, "~> 1.0", [hex: :jumper, repo: "hexpm", optional: false]}, {:sleeplocks, "~> 1.1", [hex: :sleeplocks, repo: "hexpm", optional: false]}, {:unsafe, "~> 1.0", [hex: :unsafe, repo: "hexpm", optional: false]}], "hexpm", "d90e5ee1dde14cef33f6b187af4335b88748b72b30c038969176cd4e6ccc31a1"},
"certifi": {:hex, :certifi, "2.6.1", "dbab8e5e155a0763eea978c913ca280a6b544bfa115633fa20249c3d396d9493", [:rebar3], [], "hexpm", "524c97b4991b3849dd5c17a631223896272c6b0af446778ba4675a1dff53bb7e"},
@ -81,7 +81,7 @@
"jose": {:hex, :jose, "1.11.1", "59da64010c69aad6cde2f5b9248b896b84472e99bd18f246085b7b9fe435dcdb", [:mix, :rebar3], [], "hexpm", "078f6c9fb3cd2f4cfafc972c814261a7d1e8d2b3685c0a76eb87e158efff1ac5"},
"jsx": {:hex, :jsx, "2.8.3", "a05252d381885240744d955fbe3cf810504eb2567164824e19303ea59eef62cf", [:mix, :rebar3], [], "hexpm", "fc3499fed7a726995aa659143a248534adc754ebd16ccd437cd93b649a95091f"},
"jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"},
"junit_formatter": {:hex, :junit_formatter, "3.1.0", "3f69c61c5413750f9c45e367d77aabbeac9b395acf478d8e70b4ee9d1989c709", [:mix], [], "hexpm", "da52401a93f711fc4f77ffabdda68f9a16fcad5d96f5fce4ae606ab1d73b72f4"},
"junit_formatter": {:hex, :junit_formatter, "3.2.0", "6a64d6327c48472e983af7645aeb1d756cad4b33c5ab3a5db820f13d6d2b85fe", [:mix], [], "hexpm", "043d6f660667ee64c6d7e5edb867b7900c395356346e77185879449b50486681"},
"linkify": {:hex, :linkify, "0.5.0", "e0ea8de73ff44742d6a889721221f4c4eccaad5284957ee9832ffeb347602d54", [:mix], [], "hexpm", "4ccd958350aee7c51c89e21f05b15d30596ebbba707e051d21766be1809df2d7"},
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
"makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"},
@ -111,7 +111,7 @@
"plug_cowboy": {:hex, :plug_cowboy, "2.5.0", "51c998f788c4e68fc9f947a5eba8c215fbb1d63a520f7604134cab0270ea6513", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5b2c8925a5e2587446f33810a58c01e66b3c345652eeec809b76ba007acde71a"},
"plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
"poison": {:hex, :poison, "4.0.1", "bcb755a16fac91cad79bfe9fc3585bb07b9331e50cfe3420a24bcc2d735709ae", [:mix], [], "hexpm", "ba8836feea4b394bb718a161fc59a288fe0109b5006d6bdf97b6badfcf6f0f25"},
"postgrex": {:hex, :postgrex, "0.15.8", "f5e782bbe5e8fa178d5e3cd1999c857dc48eda95f0a4d7f7bd92a50e84a0d491", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "698fbfacea34c4cf22c8281abeb5cf68d99628d541874f085520ab3b53d356fe"},
"postgrex": {:hex, :postgrex, "0.15.9", "46f8fe6f25711aeb861c4d0ae09780facfdf3adbd2fb5594ead61504dd489bda", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "610719103e4cb2223d4ab78f9f0f3e720320eeca6011415ab4137ddef730adee"},
"progress_bar": {:hex, :progress_bar, "2.0.1", "7b40200112ae533d5adceb80ff75fbe66dc753bca5f6c55c073bfc122d71896d", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "2519eb58a2f149a3a094e729378256d8cb6d96a259ec94841bd69fdc71f18f87"},
"ranch": {:hex, :ranch, "1.7.1", "6b1fab51b49196860b733a49c07604465a47bdb78aa10c1c16a3d199f7f8c881", [:rebar3], [], "hexpm", "451d8527787df716d99dc36162fca05934915db0b6141bbdac2ea8d3c7afc7d7"},
"remote_ip": {:hex, :remote_ip, "1.0.0", "3d7fb45204a5704443f480cee9515e464997f52c35e0a60b6ece1f81484067ae", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "9e9fcad4e50c43b5234bb6a9629ed6ab223f3ed07147bd35470e4ee5c8caf907"},

View File

@ -868,8 +868,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1392,21 +1392,22 @@ msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1429,3 +1430,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -125,12 +125,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -140,13 +140,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -156,7 +156,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -172,16 +172,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -247,22 +247,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -277,7 +277,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -287,17 +287,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -362,12 +362,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -414,7 +414,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -424,7 +424,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -441,12 +441,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -480,15 +480,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -521,22 +516,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -551,7 +546,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -571,7 +566,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -587,7 +582,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -607,12 +602,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -632,22 +627,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -787,12 +782,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -802,7 +797,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -817,17 +812,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -837,7 +832,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -852,8 +847,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -862,7 +857,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -876,3 +871,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

View File

@ -844,8 +844,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1368,21 +1368,22 @@ msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1405,3 +1406,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -99,12 +99,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -114,13 +114,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -130,7 +130,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -146,16 +146,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -221,22 +221,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -251,7 +251,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -261,17 +261,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -336,12 +336,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -388,7 +388,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -398,7 +398,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -415,12 +415,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -454,15 +454,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -495,22 +490,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -525,7 +520,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -545,7 +540,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -561,7 +556,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -581,12 +576,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -606,22 +601,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -761,12 +756,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -776,7 +771,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -791,17 +786,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -811,7 +806,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -826,8 +821,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -836,7 +831,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -850,3 +845,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

View File

@ -1024,8 +1024,8 @@ msgstr ""
". Ara és:"
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Si no has fet aquest canvi tu mateix/a, és possible que algú hagi aconseguit "
@ -1617,21 +1617,22 @@ msgstr "Aquesta és una web de proves per provar la beta de Mobilizon."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr "El flux de %{name}"
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr "El flux d'activitats privades de %{actor} a %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr "El flux d'activitats públiques de %{actor} a %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr "Flux de %{email} a %{instance}"
@ -1654,3 +1655,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Sembla ser que el servidor de Mobilizon està temporalment inaccessible."
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -100,12 +100,12 @@ msgid "Cannot refresh the token"
msgstr "No s'ha pogut actualitzar el codi d'accés"
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "El perfil actual no pertany a aquest grup"
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "El perfil actual no administra el grup seleccionat"
@ -115,13 +115,13 @@ msgid "Error while saving user settings"
msgstr "No s'han pogut desar les preferències"
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "No s'ha trobat el grup"
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "No s'ha trobat el grup amb identificador %{id}"
@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "No t'hem pogut autenticar. El teu correu o contrasenya són incorrectes."
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "No s'ha trobat el/la membre"
@ -147,16 +147,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -222,22 +222,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -252,7 +252,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -262,17 +262,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -337,12 +337,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -389,7 +389,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -399,7 +399,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -416,12 +416,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -455,15 +455,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -496,22 +491,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -526,7 +521,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -546,7 +541,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -562,7 +557,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -582,12 +577,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -607,22 +602,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -762,12 +757,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -777,7 +772,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -792,17 +787,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -812,7 +807,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -827,8 +822,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -837,7 +832,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -851,3 +846,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

View File

@ -844,8 +844,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1368,21 +1368,22 @@ msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1405,3 +1406,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -99,12 +99,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -114,13 +114,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -130,7 +130,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -146,16 +146,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -221,22 +221,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -251,7 +251,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -261,17 +261,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -336,12 +336,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -388,7 +388,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -398,7 +398,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -415,12 +415,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -454,15 +454,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -495,22 +490,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -525,7 +520,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -545,7 +540,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -561,7 +556,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -581,12 +576,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -606,22 +601,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -761,12 +756,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -776,7 +771,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -791,17 +786,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -811,7 +806,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -826,8 +821,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -836,7 +831,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -850,3 +845,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -100,12 +100,12 @@ msgid "Cannot refresh the token"
msgstr "Der Token konnte nicht aktualisiert werden"
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "Aktuelles Profil ist nicht Mitglied dieser Gruppe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "Aktuelles Profil ist kein Administrator der ausgewählten Gruppe"
@ -115,13 +115,13 @@ msgid "Error while saving user settings"
msgstr "Fehler beim Speichern von Benutzereinstellungen"
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Gruppe nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Gruppe mit der ID %{id} nicht gefunden"
@ -133,7 +133,7 @@ msgstr ""
"Passwort sind ungültig."
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Mitglied wurde nicht gefunden"
@ -150,16 +150,16 @@ msgstr ""
"Es wurde kein Benutzer gefunden, der mit dieser E-Mail validiert werden kann"
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Es wurde kein Benutzer mit dieser E-Mail gefunden"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "Profil ist nicht im Besitz des authentifizierten Benutzers"
@ -227,24 +227,24 @@ msgid "User requested is not logged-in"
msgstr "Angeforderter Benutzer ist nicht eingeloggt"
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Sie sind bereits Mitglied in dieser Gruppe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
"Sie können diese Gruppe nicht verlassen, da Sie der einzige Administrator "
"sind"
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Sie können dieser Gruppe nicht beitreten"
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Sie dürfen keine Gruppen auflisten, es sei denn, Sie sind Moderator."
@ -259,7 +259,7 @@ msgid "You need to be logged-in to change your password"
msgstr "Sie müssen eingeloggt sein, um Ihr Passwort zu ändern"
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu löschen"
@ -269,17 +269,17 @@ msgid "You need to be logged-in to delete your account"
msgstr "Sie müssen eingeloggt sein, um Ihr Konto zu löschen"
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Sie müssen eingeloggt sein, um einer Gruppe beizutreten"
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu verlassen"
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu aktualisieren"
@ -345,12 +345,12 @@ msgid "Anonymous participation is not enabled"
msgstr "Anonyme Teilnahme ist nicht möglich"
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Der letzte Administrator einer Gruppe kann nicht entfernt werden"
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Kann die letzte Identität eines Benutzers nicht entfernen"
@ -397,7 +397,7 @@ msgid "Internal Error"
msgstr "Interner Fehler"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Keine Diskussion mit ID %{id}"
@ -407,7 +407,7 @@ msgid "No profile found for user"
msgstr "Kein Profil für Benutzer gefunden"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Kein solches Feed-Token"
@ -424,12 +424,12 @@ msgid "Participant not found"
msgstr "Teilnehmer nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Person mit ID %{id} nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Person mit Benutzernamen %{username} nicht gefunden"
@ -465,15 +465,10 @@ msgid "Profile is not member of group"
msgstr "Profil ist nicht Mitglied der Gruppe"
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Profil nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "Dieses Moderatorenprofil hat keine Berechtigung für diese Veranstaltung"
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -506,22 +501,22 @@ msgid "Todo list doesn't exist"
msgstr "ToDo-Liste existiert nicht"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Token existiert nicht"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Token ist keine gültige UUID"
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "User nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Sie haben bereits ein Profil für diesen Benutzer"
@ -536,7 +531,7 @@ msgid "You are not a member of this group"
msgstr "Sie sind nicht Mitglied in dieser Gruppe"
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Sie sind kein Moderator oder Admin für diese Gruppe"
@ -556,7 +551,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr "Sie dürfen einen Kommentar nicht löschen, wenn Sie nicht verbunden sind"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Sie dürfen ein Feed-Token nicht löschen, wenn keine Verbindung besteht"
@ -575,7 +570,7 @@ msgstr ""
"Teilnehmer sind, der die Veranstaltung erstellt"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Sie können sich nicht auf eine niedrigere Mitgliedsrolle für diese Gruppe "
@ -597,12 +592,12 @@ msgid "You cannot invite to this group"
msgstr "Sie können nicht in diese Gruppe einladen"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Sie haben nicht die Berechtigung diesen Token zu löschen"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Sie müssen eingeloggt und ein Moderator sein, um Aktionsprotokolle "
@ -626,28 +621,28 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr "Sie müssen eingeloggt und ein Moderator sein, um einen Bericht zu sehen"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Sie müssen angemeldet und ein Administrator sein, um auf die Admin-"
"Einstellungen zugreifen zu können"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Sie müssen angemeldet und ein Administrator sein, um auf die Dashboard-"
"Statistiken zugreifen zu können"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Sie müssen eingeloggt und ein Administrator sein, um Admin-Einstellungen zu "
"speichern"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Sie müssen eingeloggt sein, um auf Diskussionen zugreifen zu können"
@ -789,12 +784,12 @@ msgid "You need to be logged in"
msgstr "Sie müssen eingeloggt sein"
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Sie können diese Einladung mit diesem Profil nicht annehmen."
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Sie können diese Einladung mit diesem Profil nicht ablehnen."
@ -804,7 +799,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr "Die Datei hat keinen zulässigen MIME-Typ."
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "Profil ist nicht Administrator für die Gruppe"
@ -819,17 +814,17 @@ msgid "You can't attribute this event to this profile."
msgstr "Sie können dieses Ereignis nicht diesem Profil zuordnen."
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Diese Einladung gibt es nicht."
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Dieses Mitglied ist bereits abgelehnt worden."
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Sie haben nicht das Recht, dieses Mitglied zu entfernen."
@ -839,7 +834,7 @@ msgid "This username is already taken."
msgstr "Dieser Benutzername ist bereits vergeben."
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Sie müssen entweder eine ID oder einen Slug angeben, um auf eine Diskussion "
@ -856,8 +851,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "Die angegebene Profil-ID ist nicht die des anonymen Profils"
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "Das Bild ist zu groß"
@ -866,7 +861,7 @@ msgstr "Das Bild ist zu groß"
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Fehler beim Speichern des Reports"
@ -880,3 +875,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Dieses Moderatorenprofil hat keine Berechtigung für diese Veranstaltung"

View File

@ -823,8 +823,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1347,21 +1347,22 @@ msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1384,3 +1385,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -876,8 +876,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1400,21 +1400,22 @@ msgstr "This is a demonstration site to test the beta version of Mobilizon."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1437,3 +1438,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -103,12 +103,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -118,13 +118,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -134,7 +134,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -150,16 +150,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -225,22 +225,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -255,7 +255,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -265,17 +265,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -340,12 +340,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -392,7 +392,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -402,7 +402,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -419,12 +419,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -458,15 +458,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -499,22 +494,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -529,7 +524,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -549,7 +544,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -565,7 +560,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -585,12 +580,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -610,22 +605,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -765,12 +760,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -780,7 +775,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -795,17 +790,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -815,7 +810,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -830,8 +825,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -840,7 +835,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -854,3 +849,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

View File

@ -100,12 +100,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -115,13 +115,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -147,16 +147,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -222,22 +222,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -252,7 +252,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -262,17 +262,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -337,12 +337,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -389,7 +389,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -399,7 +399,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -416,12 +416,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -455,15 +455,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -496,22 +491,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -526,7 +521,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -546,7 +541,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -562,7 +557,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -582,12 +577,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -607,22 +602,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -762,12 +757,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -777,7 +772,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -792,17 +787,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -812,7 +807,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -827,8 +822,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -851,3 +846,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

View File

@ -1036,8 +1036,8 @@ msgstr ""
"electrónico vinculada a su cuenta en% {host} se ha cambiado de esta a:"
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Si no activó este cambio usted mismo, es probable que alguien haya obtenido "
@ -1685,21 +1685,22 @@ msgstr "Este es un sitio de demostración para probar Mobilizon."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr "Flujo de %{name}"
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Flujo de eventos privados de %{actor} a %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Flujo público de eventos de %{actor} a %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr "Flujo para %{email} en %{instance}"
@ -1727,3 +1728,8 @@ msgstr "Detalles técnicos"
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
"El servidor de Mobilizon %{instance} parece estar temporalmente inactivo."
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -94,780 +94,780 @@ msgstr "debe ser mayor o igual que% {number}"
msgid "must be equal to %{number}"
msgstr "debe ser igual a% {number}"
#: lib/graphql/resolvers/user.ex:100
#, elixir-format
#: lib/graphql/resolvers/user.ex:100
msgid "Cannot refresh the token"
msgstr "No se puede actualizar el token"
#: lib/graphql/resolvers/group.ex:198
#, elixir-format
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "El perfil actual no es miembro de este grupo"
#: lib/graphql/resolvers/group.ex:202
#, elixir-format
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "El perfil actual no es un administrador del grupo seleccionado"
#: lib/graphql/resolvers/user.ex:501
#, elixir-format
#: lib/graphql/resolvers/user.ex:501
msgid "Error while saving user settings"
msgstr "Error al guardar los parámetros del usuario"
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Grupo no encontrado"
#: lib/graphql/resolvers/group.ex:66
#, elixir-format
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "No se encontró el grupo con ID% {id}"
#: lib/graphql/resolvers/user.ex:80
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
"Imposible autenticarse, su correo electrónico o contraseña no son válidos."
#: lib/graphql/resolvers/group.ex:258
#, elixir-format
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Miembro no encontrado"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
#: lib/graphql/resolvers/user.ex:406
#, elixir-format
msgid "No profile found for the moderator user"
msgstr "No se encontró el perfil del usuario moderador"
#: lib/graphql/resolvers/user.ex:193
#, elixir-format
#: lib/graphql/resolvers/user.ex:193
msgid "No user to validate with this email was found"
msgstr "No se encontró ningún usuario para validar con este correo electrónico"
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#, elixir-format
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "No se encontró ningún usuario con este correo electrónico"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#, elixir-format
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "El perfil no es propiedad del usuario autenticado"
#: lib/graphql/resolvers/user.ex:123
#, elixir-format
#: lib/graphql/resolvers/user.ex:123
msgid "Registrations are not open"
msgstr "Las inscripciones no están abiertas"
#: lib/graphql/resolvers/user.ex:331
#, elixir-format
#: lib/graphql/resolvers/user.ex:331
msgid "The current password is invalid"
msgstr "La contraseña actual no es válida"
#: lib/graphql/resolvers/user.ex:376
#, elixir-format
#: lib/graphql/resolvers/user.ex:376
msgid "The new email doesn't seem to be valid"
msgstr "El nuevo correo electrónico no parece ser válido"
#: lib/graphql/resolvers/user.ex:373
#, elixir-format
#: lib/graphql/resolvers/user.ex:373
msgid "The new email must be different"
msgstr "El nuevo correo electrónico debe ser diferente"
#: lib/graphql/resolvers/user.ex:334
#, elixir-format
#: lib/graphql/resolvers/user.ex:334
msgid "The new password must be different"
msgstr "La nueva contraseña debe ser diferente"
#, elixir-format
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428
#: lib/graphql/resolvers/user.ex:431
#, elixir-format
msgid "The password provided is invalid"
msgstr "La contraseña proporcionada no es válida"
#: lib/graphql/resolvers/user.ex:338
#, elixir-format
#: lib/graphql/resolvers/user.ex:338
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"La contraseña que ha elegido es demasiado corta. Asegúrese de que su "
"contraseña contenga al menos 6 caracteres."
#: lib/graphql/resolvers/user.ex:214
#, elixir-format
#: lib/graphql/resolvers/user.ex:214
msgid "This user can't reset their password"
msgstr "Este usuario no puede restablecer su contraseña"
#: lib/graphql/resolvers/user.ex:76
#, elixir-format
#: lib/graphql/resolvers/user.ex:76
msgid "This user has been disabled"
msgstr "Este usuario ha sido inhabilitado"
#: lib/graphql/resolvers/user.ex:177
#, elixir-format
#: lib/graphql/resolvers/user.ex:177
msgid "Unable to validate user"
msgstr "No se puede validar al usuario"
#: lib/graphql/resolvers/user.ex:409
#, elixir-format
#: lib/graphql/resolvers/user.ex:409
msgid "User already disabled"
msgstr "El usuario ya está inhabilitado"
#: lib/graphql/resolvers/user.ex:476
#, elixir-format
#: lib/graphql/resolvers/user.ex:476
msgid "User requested is not logged-in"
msgstr "El usuario solicitado no ha iniciado sesión"
#: lib/graphql/resolvers/group.ex:232
#, elixir-format
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Ya eres miembro de este grupo"
#: lib/graphql/resolvers/group.ex:265
#, elixir-format
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "No puedes dejar este grupo porque eres el único administrador"
#: lib/graphql/resolvers/group.ex:229
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "No puedes unirte a este grupo"
#: lib/graphql/resolvers/group.ex:94
#, elixir-format
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "No puedes enumerar grupos a menos que seas moderador."
#: lib/graphql/resolvers/user.ex:381
#, elixir-format
#: lib/graphql/resolvers/user.ex:381
msgid "You need to be logged-in to change your email"
msgstr "Debes iniciar sesión para cambiar tu correo electrónico"
#: lib/graphql/resolvers/user.ex:346
#, elixir-format
#: lib/graphql/resolvers/user.ex:346
msgid "You need to be logged-in to change your password"
msgstr "Debes iniciar sesión para cambiar tu contraseña"
#: lib/graphql/resolvers/group.ex:207
#, elixir-format
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Debes iniciar sesión para eliminar un grupo"
#: lib/graphql/resolvers/user.ex:436
#, elixir-format
#: lib/graphql/resolvers/user.ex:436
msgid "You need to be logged-in to delete your account"
msgstr "Debes iniciar sesión para eliminar su cuenta"
#: lib/graphql/resolvers/group.ex:237
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Debes iniciar sesión para eliminar su cuenta"
#: lib/graphql/resolvers/group.ex:270
#, elixir-format
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Debes iniciar sesión para dejar un grupo"
#: lib/graphql/resolvers/group.ex:172
#, elixir-format
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Debes iniciar sesión para actualizar un grupo"
#: lib/graphql/resolvers/user.ex:105
#, elixir-format
#: lib/graphql/resolvers/user.ex:105
msgid "You need to have an existing token to get a refresh token"
msgstr "Debes tener un token existente para obtener un token de actualización"
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
#, elixir-format
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
msgid "You requested again a confirmation email too soon"
msgstr ""
"Solicitó de nuevo un correo electrónico de confirmación demasiado pronto"
#: lib/graphql/resolvers/user.ex:126
#, elixir-format
#: lib/graphql/resolvers/user.ex:126
msgid "Your email is not on the allowlist"
msgstr "Tu correo electrónico no está en la lista de permitidos"
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
msgid "Error while performing background task"
msgstr "Error al realizar la tarea en segundo plano"
#: lib/graphql/resolvers/actor.ex:27
#, elixir-format
#: lib/graphql/resolvers/actor.ex:27
msgid "No profile found with this ID"
msgstr "No se encontró ningún perfil con este ID"
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
#, elixir-format
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
msgid "No remote profile found with this ID"
msgstr "No se encontró ningún perfil remoto con este ID"
#: lib/graphql/resolvers/actor.ex:69
#, elixir-format
#: lib/graphql/resolvers/actor.ex:69
msgid "Only moderators and administrators can suspend a profile"
msgstr "Solo los moderadores y administradores pueden suspender un perfil"
#: lib/graphql/resolvers/actor.ex:99
#, elixir-format
#: lib/graphql/resolvers/actor.ex:99
msgid "Only moderators and administrators can unsuspend a profile"
msgstr ""
"Solo los moderadores y administradores pueden anular la suspensión de un "
"perfil"
#: lib/graphql/resolvers/actor.ex:24
#, elixir-format
#: lib/graphql/resolvers/actor.ex:24
msgid "Only remote profiles may be refreshed"
msgstr "Solo se pueden actualizar los perfiles remotos"
#: lib/graphql/resolvers/actor.ex:61
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61
msgid "Profile already suspended"
msgstr "Perfil ya suspendido"
#: lib/graphql/resolvers/participant.ex:92
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
msgid "A valid email is required by your instance"
msgstr "Su instancia requiere un correo electrónico válido"
#: lib/graphql/resolvers/participant.ex:86
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
msgid "Anonymous participation is not enabled"
msgstr "La participación anónima no está habilitada"
#: lib/graphql/resolvers/person.ex:195
#, elixir-format
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "No se puede eliminar al último administrador de un grupo"
#: lib/graphql/resolvers/person.ex:192
#, elixir-format
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "No se puede eliminar la última identidad de un usuario"
#: lib/graphql/resolvers/comment.ex:108
#, elixir-format
#: lib/graphql/resolvers/comment.ex:108
msgid "Comment is already deleted"
msgstr "El comentario ya está eliminado"
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
msgid "Discussion not found"
msgstr "Discusión no encontrada"
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
msgid "Error while saving report"
msgstr "Error al guardar el informe"
#: lib/graphql/resolvers/report.ex:96
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
msgid "Error while updating report"
msgstr "Error al actualizar el informe"
#: lib/graphql/resolvers/participant.ex:127
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
msgid "Event id not found"
msgstr "ID de evento no encontrado"
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281
#: lib/graphql/resolvers/event.ex:325
#, elixir-format
msgid "Event not found"
msgstr "Evento no encontrado"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
#, elixir-format
msgid "Event with this ID %{id} doesn't exist"
msgstr "El evento con este ID%{id} no existe"
#: lib/graphql/resolvers/participant.ex:99
#, elixir-format
#: lib/graphql/resolvers/participant.ex:99
msgid "Internal Error"
msgstr "Error interno"
#: lib/graphql/resolvers/discussion.ex:201
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Sin discusión con ID%{id}"
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
msgid "No profile found for user"
msgstr "No se encontró perfil para el usuario"
#: lib/graphql/resolvers/feed_token.ex:63
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "No existe tal token de alimentación"
#: lib/graphql/resolvers/participant.ex:237
#, elixir-format
#: lib/graphql/resolvers/participant.ex:237
msgid "Participant already has role %{role}"
msgstr "El participante ya tiene el rol%{role}"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
#, elixir-format
msgid "Participant not found"
msgstr "Participante no encontrado"
#: lib/graphql/resolvers/person.ex:29
#, elixir-format
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Persona con ID%{id} no encontrada"
#: lib/graphql/resolvers/person.ex:51
#, elixir-format
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Persona con nombre de usuario %{username} no encontrada"
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
msgid "Post ID is not a valid ID"
msgstr "La ID de publicación no es válida"
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
#, elixir-format
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
msgid "Post doesn't exist"
msgstr "La publicación no existe"
#: lib/graphql/resolvers/member.ex:83
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
msgid "Profile invited doesn't exist"
msgstr "El perfil invitado no existe"
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
msgid "Profile is already a member of this group"
msgstr "Perfil ya es miembro de este grupo"
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
#, elixir-format
msgid "Profile is not member of group"
msgstr "El perfil no es miembro del grupo"
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#, elixir-format
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Perfil no encontrado"
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
#, elixir-format
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "El perfil de moderador proporcionado no tiene permiso para este evento"
#: lib/graphql/resolvers/report.ex:36
#, elixir-format
msgid "Report not found"
msgstr "Informe no encontrado"
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
msgid "Resource doesn't exist"
msgstr "El recurso no existe"
#: lib/graphql/resolvers/participant.ex:120
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
msgid "The event has already reached its maximum capacity"
msgstr "El evento ya alcanzó su capacidad máxima"
#: lib/graphql/resolvers/participant.ex:260
#, elixir-format
#: lib/graphql/resolvers/participant.ex:260
msgid "This token is invalid"
msgstr "Este token no es válido"
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
msgid "Todo doesn't exist"
msgstr "Todo no existe"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
#, elixir-format
msgid "Todo list doesn't exist"
msgstr "La lista de tareas pendientes no existe"
#: lib/graphql/resolvers/feed_token.ex:69
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "El token no existe"
#: lib/graphql/resolvers/feed_token.ex:66
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "El token no es un UUID válido"
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Usuario no encontrado"
#: lib/graphql/resolvers/person.ex:256
#, elixir-format
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Ya tienes un perfil para este usuario"
#: lib/graphql/resolvers/participant.ex:130
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
msgid "You are already a participant of this event"
msgstr "Ya eres participante de este evento"
#: lib/graphql/resolvers/member.ex:86
#, elixir-format
#: lib/graphql/resolvers/member.ex:86
msgid "You are not a member of this group"
msgstr "no eres un miembro de este grupo"
#: lib/graphql/resolvers/member.ex:151
#, elixir-format
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "No eres moderador ni administrador de este grupo"
#: lib/graphql/resolvers/comment.ex:54
#, elixir-format
#: lib/graphql/resolvers/comment.ex:54
msgid "You are not allowed to create a comment if not connected"
msgstr "No está permitido crear un comentario si no está conectado"
#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "No puede crear un token de feed si no está conectado"
#: lib/graphql/resolvers/comment.ex:113
#, elixir-format
#: lib/graphql/resolvers/comment.ex:113
msgid "You are not allowed to delete a comment if not connected"
msgstr "No puede eliminar un comentario si no está conectado"
#: lib/graphql/resolvers/feed_token.ex:78
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "No puede eliminar un token de feed si no está conectado"
#: lib/graphql/resolvers/comment.ex:76
#, elixir-format
#: lib/graphql/resolvers/comment.ex:76
msgid "You are not allowed to update a comment if not connected"
msgstr "No se le permite actualizar un comentario si no está conectado"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"No puedes abandonar el evento porque eres el único participante creador del "
"evento"
#: lib/graphql/resolvers/member.ex:155
#, elixir-format
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"No puede establecerse en un rol de miembro inferior para este grupo porque "
"es el único administrador"
#: lib/graphql/resolvers/comment.ex:104
#, elixir-format
#: lib/graphql/resolvers/comment.ex:104
msgid "You cannot delete this comment"
msgstr "No puedes borrar este comentario"
#: lib/graphql/resolvers/event.ex:321
#, elixir-format
#: lib/graphql/resolvers/event.ex:321
msgid "You cannot delete this event"
msgstr "No puedes borrar este evento"
#: lib/graphql/resolvers/member.ex:89
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
msgid "You cannot invite to this group"
msgstr "No puedes invitar a este grupo"
#: lib/graphql/resolvers/feed_token.ex:72
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "No tienes permiso para eliminar este token"
#: lib/graphql/resolvers/admin.ex:52
#, elixir-format
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Debe iniciar sesión y un moderador para enumerar los registros de acción"
#: lib/graphql/resolvers/report.ex:26
#, elixir-format
#: lib/graphql/resolvers/report.ex:26
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Debe iniciar sesión y un moderador para enumerar los informes"
#: lib/graphql/resolvers/report.ex:101
#, elixir-format
#: lib/graphql/resolvers/report.ex:101
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
#: lib/graphql/resolvers/report.ex:41
#, elixir-format
#: lib/graphql/resolvers/report.ex:41
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
#: lib/graphql/resolvers/admin.ex:236
#, elixir-format
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Debe iniciar sesión y ser administrador para acceder a la configuración de "
"administrador"
#: lib/graphql/resolvers/admin.ex:221
#, elixir-format
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
"panel"
#: lib/graphql/resolvers/admin.ex:260
#, elixir-format
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
"panel"
#: lib/graphql/resolvers/discussion.ex:76
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Debe iniciar sesión para acceder a las discusiones"
#: lib/graphql/resolvers/resource.ex:94
#, elixir-format
#: lib/graphql/resolvers/resource.ex:94
msgid "You need to be logged-in to access resources"
msgstr "Debes iniciar sesión para acceder a los recursos"
#: lib/graphql/resolvers/event.ex:256
#, elixir-format
#: lib/graphql/resolvers/event.ex:256
msgid "You need to be logged-in to create events"
msgstr "Debes iniciar sesión para crear eventos"
#: lib/graphql/resolvers/post.ex:140
#, elixir-format
#: lib/graphql/resolvers/post.ex:140
msgid "You need to be logged-in to create posts"
msgstr "Debes iniciar sesión para crear publicaciones"
#: lib/graphql/resolvers/report.ex:74
#, elixir-format
#: lib/graphql/resolvers/report.ex:74
msgid "You need to be logged-in to create reports"
msgstr "Debe iniciar sesión para crear informes"
#: lib/graphql/resolvers/resource.ex:133
#, elixir-format
#: lib/graphql/resolvers/resource.ex:133
msgid "You need to be logged-in to create resources"
msgstr "Debe iniciar sesión para crear recursos"
#: lib/graphql/resolvers/event.ex:330
#, elixir-format
#: lib/graphql/resolvers/event.ex:330
msgid "You need to be logged-in to delete an event"
msgstr "Debe iniciar sesión para eliminar un evento"
#: lib/graphql/resolvers/post.ex:211
#, elixir-format
#: lib/graphql/resolvers/post.ex:211
msgid "You need to be logged-in to delete posts"
msgstr "Debes iniciar sesión para eliminar publicaciones"
#: lib/graphql/resolvers/resource.ex:191
#, elixir-format
#: lib/graphql/resolvers/resource.ex:191
msgid "You need to be logged-in to delete resources"
msgstr "Debes iniciar sesión para eliminar recursos"
#: lib/graphql/resolvers/participant.ex:104
#, elixir-format
#: lib/graphql/resolvers/participant.ex:104
msgid "You need to be logged-in to join an event"
msgstr "Debes iniciar sesión para eliminar recursos"
#: lib/graphql/resolvers/participant.ex:203
#, elixir-format
#: lib/graphql/resolvers/participant.ex:203
msgid "You need to be logged-in to leave an event"
msgstr "Debes iniciar sesión para salir de un evento"
#: lib/graphql/resolvers/event.ex:295
#, elixir-format
#: lib/graphql/resolvers/event.ex:295
msgid "You need to be logged-in to update an event"
msgstr "Debe iniciar sesión para actualizar un evento"
#: lib/graphql/resolvers/post.ex:178
#, elixir-format
#: lib/graphql/resolvers/post.ex:178
msgid "You need to be logged-in to update posts"
msgstr "Debes iniciar sesión para actualizar las publicaciones"
#: lib/graphql/resolvers/resource.ex:162
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "You need to be logged-in to update resources"
msgstr "Debes iniciar sesión para actualizar los recursos"
#: lib/graphql/resolvers/resource.ex:218
#, elixir-format
#: lib/graphql/resolvers/resource.ex:218
msgid "You need to be logged-in to view a resource preview"
msgstr "Debe iniciar sesión para ver una vista previa del recurso"
#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
#: lib/graphql/resolvers/resource.ex:125
msgid "Parent resource doesn't belong to this group"
msgstr "El recurso principal no pertenece a este grupo"
#: lib/mobilizon/users/user.ex:109
#, elixir-format
#: lib/mobilizon/users/user.ex:109
msgid "The chosen password is too short."
msgstr "La contraseña elegida es demasiado corta."
#: lib/mobilizon/users/user.ex:138
#, elixir-format
#: lib/mobilizon/users/user.ex:138
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"El token de registro ya está en uso, esto parece un problema de nuestra "
"parte."
#: lib/mobilizon/users/user.ex:104
#, elixir-format
#: lib/mobilizon/users/user.ex:104
msgid "This email is already used."
msgstr "Este correo electrónico ya está en uso."
#: lib/graphql/error.ex:88
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Post not found"
msgstr "Informe no encontrado"
#: lib/graphql/error.ex:75
#, elixir-format
#: lib/graphql/error.ex:75
msgid "Invalid arguments passed"
msgstr "Se pasaron argumentos no válidos"
#: lib/graphql/error.ex:81
#, elixir-format
#: lib/graphql/error.ex:81
msgid "Invalid credentials"
msgstr "Credenciales no válidas"
#: lib/graphql/error.ex:79
#, elixir-format
#: lib/graphql/error.ex:79
msgid "Reset your password to login"
msgstr "Restablezca su contraseña para iniciar sesión"
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
msgid "Resource not found"
msgstr "Recurso no encontrado"
#: lib/graphql/error.ex:93
#, elixir-format
#: lib/graphql/error.ex:93
msgid "Something went wrong"
msgstr "Algo salió mal"
#: lib/graphql/error.ex:74
#, elixir-format
#: lib/graphql/error.ex:74
msgid "Unknown Resource"
msgstr "Recurso desconocido"
#: lib/graphql/error.ex:84
#, elixir-format
#: lib/graphql/error.ex:84
msgid "You don't have permission to do this"
msgstr "No tienes permiso para hacer esto"
#: lib/graphql/error.ex:76
#, elixir-format
#: lib/graphql/error.ex:76
msgid "You need to be logged in"
msgstr "Debes iniciar sesión"
#: lib/graphql/resolvers/member.ex:116
#, elixir-format
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "No puedes aceptar esta invitación con este perfil."
#: lib/graphql/resolvers/member.ex:134
#, elixir-format
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "No puedes rechazar esta invitación con este perfil."
#: lib/graphql/resolvers/media.ex:62
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
msgid "File doesn't have an allowed MIME type."
msgstr "El archivo no tiene un tipo MIME permitido."
#: lib/graphql/resolvers/group.ex:167
#, elixir-format
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "El perfil no es miembro del grupo"
#: lib/graphql/resolvers/event.ex:284
#, elixir-format
#: lib/graphql/resolvers/event.ex:284
msgid "You can't edit this event."
msgstr "No puedes borrar este evento."
#: lib/graphql/resolvers/event.ex:287
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "You can't attribute this event to this profile."
msgstr "No puedes rechazar esta invitación con este perfil."
#: lib/graphql/resolvers/member.ex:137
#, elixir-format
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Esta invitación no existe."
#: lib/graphql/resolvers/member.ex:179
#, elixir-format
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Este miembro ya ha sido rechazado."
#: lib/graphql/resolvers/member.ex:186
#, elixir-format
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "No tiene derecho a eliminar este miembro."
#: lib/mobilizon/actors/actor.ex:351
#, elixir-format
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr "Este nombre de usuario ya está en uso."
#: lib/graphql/resolvers/discussion.ex:73
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Debe proporcionar una identificación o un slug para acceder a una discusión"
#: lib/graphql/resolvers/event.ex:245
#, elixir-format
#: lib/graphql/resolvers/event.ex:245
msgid "Organizer profile is not owned by the user"
msgstr "El perfil del organizador no es propiedad del usuario"
#: lib/graphql/resolvers/participant.ex:89
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
msgid "Profile ID provided is not the anonymous profile one"
msgstr "El ID de perfil proporcionado no es el del perfil anónimo"
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#, elixir-format
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "La imagen proporcionada es demasiado pesada"
#: lib/web/views/utils.ex:33
#, elixir-format
#: lib/web/views/utils.ex:33
msgid "Index file not found. You need to recompile the front-end."
msgstr "No se encontró el archivo de índice. Necesita recompilar el front-end."
#: lib/graphql/resolvers/resource.ex:122
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Error al crear el recurso"
#: lib/graphql/resolvers/user.ex:390
#, elixir-format
#: lib/graphql/resolvers/user.ex:390
msgid "Invalid activation token"
msgstr "Token de activación no válido"
#: lib/graphql/resolvers/resource.ex:208
#, elixir-format
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr "No se pueden recuperar los detalles del recurso de esta URL."
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "El perfil de moderador proporcionado no tiene permiso para este evento"

View File

@ -1017,8 +1017,8 @@ msgstr ""
"sähköpostiosoite on vaihdettu seuraavaan osoitteeseen:"
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Jos et tehnyt vaihtoa itse, todennäköisesti joku muu on päässyt käyttämään "
@ -1658,21 +1658,22 @@ msgstr "Tällä kokeilusivustolla voit koekäyttää Mobilizonia."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr "%{name} syöte"
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr "%{actor} yksityistapahtumien syöte palvelimella %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr "%{actor} julkisten tapahtumien syöte palvelimella %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr "%{email}-syöte palvelimella %{instance}"
@ -1695,3 +1696,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Mobilizon-palvelin näyttää olevan väliakaisesti alhaalla."
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -100,12 +100,12 @@ msgid "Cannot refresh the token"
msgstr "Merkkiä ei voi päivittää"
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "Nykyinen profiili ei kuulu tähän ryhmään"
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "Nykyinen profiili ei ole valitun ryhmän ylläpitäjä"
@ -115,13 +115,13 @@ msgid "Error while saving user settings"
msgstr "Käyttäjän asetusten tallennuksessa tapahtui virhe"
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Ryhmää ei löydy"
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Tunnuksella %{id} ei löydy ryhmää"
@ -132,7 +132,7 @@ msgstr ""
"Kirjautuminen epäonnistui - joko sähköpostiosoitteesi tai salasana on väärin."
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Jäsentä ei löydy"
@ -148,16 +148,16 @@ msgid "No user to validate with this email was found"
msgstr "Käyttäjää tämän sähköpostin vahvistamiseksi ei löydy"
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Käyttäjää, jolla on tämä sähköpostiosoite ei löydy"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "Profiili ei ole tunnistautuneen käyttäjän omistuksessa"
@ -225,22 +225,22 @@ msgid "User requested is not logged-in"
msgstr "Pyydetty käyttäjä ei ole kirjautuneena sisään"
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Olet jo tämän ryhmän jäsen"
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Et voi poistua ryhmästä, koska olet sen ainoa ylläpitäjä"
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Et voi liittyä tähän ryhmään"
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Voit nähdä ryhmäluettelon vain, jos olet moderaattori."
@ -255,7 +255,7 @@ msgid "You need to be logged-in to change your password"
msgstr "Salasanan voi vaihtaa vain sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Ryhmän voi poistaa vain sisäänkirjautuneena"
@ -265,17 +265,17 @@ msgid "You need to be logged-in to delete your account"
msgstr "Voit poistaa tilisi vain sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Voit liittyä ryhmään vain sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Voit poistua ryhmästä vain sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Voit päivittää ryhmää vain sisäänkirjautuneena"
@ -340,12 +340,12 @@ msgid "Anonymous participation is not enabled"
msgstr "Anonyymi osallistuminen ei ole käytössä"
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Ryhmän viimeistä ylläpitäjää ei voi poistaa"
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Käyttäjän viimeistä identiteettiä ei voi poistaa"
@ -392,7 +392,7 @@ msgid "Internal Error"
msgstr "Sisäinen virhe"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Tunnisteella %{id} ei ole keskustelua"
@ -402,7 +402,7 @@ msgid "No profile found for user"
msgstr "Käyttäjälle ei löydy profiilia"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Kyseistä syötemerkkiä ei ole"
@ -419,12 +419,12 @@ msgid "Participant not found"
msgstr "Osallistujaa ei löydy"
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Tunnuksella %{id} ei löydy henkilöä"
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Käyttäjänimellä %{username} ei löydy henkilöä"
@ -458,15 +458,10 @@ msgid "Profile is not member of group"
msgstr "Profiili ei ole ryhmän jäsen"
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Profiilia ei löydy"
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "Annetulla moderaattoriprofiililla ei ole oikeuksia tähän tapahtumaan"
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -499,22 +494,22 @@ msgid "Todo list doesn't exist"
msgstr "Tehtäväluetteloa ei ole"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Merkkiä ei ole"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Merkki ei ole kelvollinen UUID"
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Käyttäjää ei löydy"
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Sinulla on jo profiili tälle käyttäjälle"
@ -529,7 +524,7 @@ msgid "You are not a member of this group"
msgstr "Et ole ryhmän jäsen"
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Et ole ryhmän moderaattori tai ylläpitäjä"
@ -549,7 +544,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr "Ilman yhteyttä ei voi poistaa kommenttia"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Ilman yhteyttä ei voi poistaa syötemerkkiä"
@ -566,7 +561,7 @@ msgstr ""
"Et voi poistua tapahtumasta, koska olet ainoa tapahtuman luonut osallistuja"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Et voi vaihtaa jäsenrooliasi ryhmässä nykyistä alemmaksi, koska olet ainoa "
@ -588,12 +583,12 @@ msgid "You cannot invite to this group"
msgstr "Et voi kutsua tähän ryhmään"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Sinulla ei ole oikeutta poistaa tätä merkkiä"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Toimintalokien katselu vain moderaattorille sisäänkirjautuneena"
@ -613,22 +608,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr "Raportin katselu vain moderaattorille sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr "Pääsy ylläpitoasetuksiin vain ylläpitäjälle sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr "Pääsy koontinäytön tilastoihin vain ylläpitäjälle sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Pääsy keskusteluihin vain sisäänkirjautuneena"
@ -768,12 +763,12 @@ msgid "You need to be logged in"
msgstr "Kirjaudu ensin sisään"
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Et voi hyväksyä kutsua tällä profiililla."
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Et voi hylätä kutsua tällä profiililla."
@ -783,7 +778,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr "Tiedostolla ei ole sallittua MIME-tyyppiä."
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "Profiili ei ole ryhmän ylläpitäjä"
@ -798,17 +793,17 @@ msgid "You can't attribute this event to this profile."
msgstr "Et voi yhdistää tapahtumaa tähän profiiliin."
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Kutsua ei ole."
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Jäsen on jo hylätty."
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Sinulla ei ole oikeutta poistaa jäsentä."
@ -818,7 +813,7 @@ msgid "This username is already taken."
msgstr "Käyttäjänimi on jo käytössä."
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Keskusteluun pääsemiseen vaaditaan tunniste tai polkutunnus"
@ -833,8 +828,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "Annettu profiilitunniste ei kuulu anonyymille profiilille"
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "Toimitettu kuva on liian suuri"
@ -843,7 +838,7 @@ msgstr "Toimitettu kuva on liian suuri"
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Virhe raporttia tallennettaessa"
@ -857,3 +852,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Annetulla moderaattoriprofiililla ei ole oikeuksia tähän tapahtumaan"

View File

@ -845,8 +845,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr "Salut ! Juste un petite note pour confirmer que l'adresse e-mail liée à votre compte sur %{host} a été changée depuis celle-ci à :"
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr "Si vous n'avez pas effectué cette modification vous-même, il est probable que quelqu'un ait eu accès à votre compte %{host}. Veuillez vous connecter et changer immédiatement votre mot de passe. Si vous ne pouvez pas vous connecter, contactez l'administrateur·ice sur %{host}."
@ -1371,21 +1371,22 @@ msgstr "Ceci est un site de démonstration permettant de tester Mobilizon."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr "Flux de %{name}"
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Flux privé des événements de %{actor} sur %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Flux public des événements de %{actor} sur %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr "Flux pour %{email} sur %{instance}"
@ -1408,3 +1409,8 @@ msgstr "Détails techniques"
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Le serveur Mobilizon %{instance} semble être temporairement hors-service."
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -96,608 +96,764 @@ 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:100
msgid "Cannot refresh the token"
msgstr "Impossible de rafraîchir le jeton"
#: lib/graphql/resolvers/group.ex:198
#, elixir-format
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "Le profil actuel n'est pas un membre de ce groupe"
#: lib/graphql/resolvers/group.ex:202
#, elixir-format
#: lib/graphql/resolvers/group.ex:210
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:501
msgid "Error while saving user settings"
msgstr "Erreur lors de la sauvegarde des paramètres utilisateur"
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195 lib/graphql/resolvers/group.ex:226
#: lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Groupe non trouvé"
#: lib/graphql/resolvers/group.ex:66
#, elixir-format
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Groupe avec l'ID %{id} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Impossible de s'authentifier, votre adresse e-mail ou bien votre mot de passe sont invalides."
#: lib/graphql/resolvers/group.ex:258
#, elixir-format
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Membre non trouvé"
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88 lib/graphql/resolvers/user.ex:406
#, elixir-format
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
#: lib/graphql/resolvers/user.ex:406
msgid "No profile found for the moderator user"
msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
#, elixir-format
#: lib/graphql/resolvers/user.ex:193
msgid "No user to validate with this email was found"
msgstr "Aucun·e utilisateur·ice à valider avec cet email n'a été trouvé·e"
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#, elixir-format
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Aucun·e utilisateur·ice avec cette adresse e-mail n'a été trouvé·e"
#: lib/graphql/resolvers/feed_token.ex:28 lib/graphql/resolvers/participant.ex:28
#: lib/graphql/resolvers/participant.ex:159 lib/graphql/resolvers/participant.ex:188
#: lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198 lib/graphql/resolvers/person.ex:277
#: lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330 lib/graphql/resolvers/person.ex:342
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
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:123
msgid "Registrations are not open"
msgstr "Les inscriptions ne sont pas ouvertes"
#, elixir-format
#: lib/graphql/resolvers/user.ex:331
msgid "The current password is invalid"
msgstr "Le mot de passe actuel est invalid"
#, elixir-format
#: lib/graphql/resolvers/user.ex:376
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:373
msgid "The new email must be different"
msgstr "La nouvelle adresse e-mail doit être différente"
#, elixir-format
#: lib/graphql/resolvers/user.ex:334
msgid "The new password must be different"
msgstr "Le nouveau mot de passe doit être différent"
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428 lib/graphql/resolvers/user.ex:431
#, elixir-format
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428
#: lib/graphql/resolvers/user.ex:431
msgid "The password provided is invalid"
msgstr "Le mot de passe fourni est invalide"
#, elixir-format
#: lib/graphql/resolvers/user.ex:338
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:214
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:76
msgid "This user has been disabled"
msgstr "Cet·te utilisateur·ice a été désactivé·e"
#, elixir-format
#: lib/graphql/resolvers/user.ex:177
msgid "Unable to validate user"
msgstr "Impossible de valider l'utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/user.ex:409
msgid "User already disabled"
msgstr "L'utilisateur·ice est déjà désactivé·e"
#, elixir-format
#: lib/graphql/resolvers/user.ex:476
msgid "User requested is not logged-in"
msgstr "L'utilisateur·ice demandé·e n'est pas connecté·e"
#: lib/graphql/resolvers/group.ex:232
#, elixir-format
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Vous êtes déjà membre de ce groupe"
#: lib/graphql/resolvers/group.ex:265
#, elixir-format
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Vous ne pouvez pas quitter ce groupe car vous en êtes le ou la seul·e administrateur·ice"
#: lib/graphql/resolvers/group.ex:229
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
#: lib/graphql/resolvers/group.ex:94
#, elixir-format
#: lib/graphql/resolvers/group.ex:96
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:381
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:346
msgid "You need to be logged-in to change your password"
msgstr "Vous devez être connecté·e pour changer votre mot de passe"
#: lib/graphql/resolvers/group.ex:207
#, elixir-format
#: lib/graphql/resolvers/group.ex:215
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:436
msgid "You need to be logged-in to delete your account"
msgstr "Vous devez être connecté·e pour supprimer votre compte"
#: lib/graphql/resolvers/group.ex:237
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Vous devez être connecté·e pour rejoindre un groupe"
#: lib/graphql/resolvers/group.ex:270
#, elixir-format
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#: lib/graphql/resolvers/group.ex:172
#, elixir-format
#: lib/graphql/resolvers/group.ex:180
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:105
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:196 lib/graphql/resolvers/user.ex:221
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:126
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:64 lib/graphql/resolvers/actor.ex:94
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:27
msgid "No profile found with this ID"
msgstr "Aucun profil trouvé avec cet ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
msgid "No remote profile found with this ID"
msgstr "Aucun profil distant trouvé avec cet ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:69
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:99
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:24
msgid "Only remote profiles may be refreshed"
msgstr "Seuls les profils distants peuvent être rafraîchis"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61
msgid "Profile already suspended"
msgstr "Le profil est déjà suspendu"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
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:86
msgid "Anonymous participation is not enabled"
msgstr "La participation anonyme n'est pas activée"
#: lib/graphql/resolvers/person.ex:195
#, elixir-format
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Impossible de supprimer le ou la dernier·ère administrateur·ice d'un groupe"
#: lib/graphql/resolvers/person.ex:192
#, elixir-format
#: lib/graphql/resolvers/person.ex:193
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:108
msgid "Comment is already deleted"
msgstr "Le commentaire est déjà supprimé"
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
msgid "Discussion not found"
msgstr "Discussion non trouvée"
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
msgid "Error while saving report"
msgstr "Erreur lors de la sauvegarde du signalement"
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
msgid "Error while updating report"
msgstr "Erreur lors de la mise à jour du signalement"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
msgid "Event id not found"
msgstr "ID de l'événement non trouvé"
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281 lib/graphql/resolvers/event.ex:325
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281
#: lib/graphql/resolvers/event.ex:325
msgid "Event not found"
msgstr "Événement non trouvé"
#: lib/graphql/resolvers/participant.ex:83 lib/graphql/resolvers/participant.ex:124
#: lib/graphql/resolvers/participant.ex:156
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
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:99
msgid "Internal Error"
msgstr "Erreur interne"
#: lib/graphql/resolvers/discussion.ex:201
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Aucune discussion avec l'ID %{id}"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
msgid "No profile found for user"
msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
#: lib/graphql/resolvers/feed_token.ex:63
#, 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:237
msgid "Participant already has role %{role}"
msgstr "Le ou la participant·e a déjà le rôle %{role}"
#: lib/graphql/resolvers/participant.ex:169 lib/graphql/resolvers/participant.ex:198
#: lib/graphql/resolvers/participant.ex:230 lib/graphql/resolvers/participant.ex:240
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
msgid "Participant not found"
msgstr "Participant·e non trouvé·e"
#: lib/graphql/resolvers/person.ex:29
#, elixir-format
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Personne avec l'ID %{id} non trouvé"
#: lib/graphql/resolvers/person.ex:51
#, elixir-format
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Personne avec le nom %{name} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
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:170 lib/graphql/resolvers/post.ex:203
msgid "Post doesn't exist"
msgstr "Le billet n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
msgid "Profile invited doesn't exist"
msgstr "Le profil invité n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
msgid "Profile is already a member of this group"
msgstr "Ce profil est déjà membre de ce groupe"
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173 lib/graphql/resolvers/post.ex:206
#: lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128 lib/graphql/resolvers/resource.ex:157
#: lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57 lib/graphql/resolvers/todos.ex:81
#: lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171 lib/graphql/resolvers/todos.ex:194
#: lib/graphql/resolvers/todos.ex:222
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
msgid "Profile is not member of group"
msgstr "Le profil n'est pas un·e membre du groupe"
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#, elixir-format
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Profile non trouvé"
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "Le profil modérateur fourni n'a pas de permissions sur cet événement"
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
msgstr "Groupe non trouvé"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
msgid "Resource doesn't exist"
msgstr "La ressource n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
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:260
msgid "This token is invalid"
msgstr "Ce jeton est invalide"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
msgid "Todo doesn't exist"
msgstr "Ce todo n'existe pas"
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191 lib/graphql/resolvers/todos.ex:216
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
msgid "Todo list doesn't exist"
msgstr "Cette todo-liste n'existe pas"
#: lib/graphql/resolvers/feed_token.ex:69
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Ce jeton n'existe pas"
#: lib/graphql/resolvers/feed_token.ex:66
#, 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"
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Utilisateur·ice non trouvé·e"
#: lib/graphql/resolvers/person.ex:256
#, elixir-format
#: lib/graphql/resolvers/person.ex:257
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:130
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:86
msgid "You are not a member of this group"
msgstr "Vous n'êtes pas membre de ce groupe"
#: lib/graphql/resolvers/member.ex:151
#, elixir-format
#: lib/graphql/resolvers/member.ex:149
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:54
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:113
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"
#: lib/graphql/resolvers/feed_token.ex:78
#, 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:76
msgid "You are not allowed to update a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à mettre à jour un commentaire si non connecté·e"
#: lib/graphql/resolvers/participant.ex:163 lib/graphql/resolvers/participant.ex:192
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
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"
#: lib/graphql/resolvers/member.ex:155
#, elixir-format
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"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:104
msgid "You cannot delete this comment"
msgstr "Vous ne pouvez pas supprimer ce commentaire"
#, elixir-format
#: lib/graphql/resolvers/event.ex:321
msgid "You cannot delete this event"
msgstr "Vous ne pouvez pas supprimer cet événement"
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
msgid "You cannot invite to this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
#: lib/graphql/resolvers/feed_token.ex:72
#, 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"
#: lib/graphql/resolvers/admin.ex:52
#, elixir-format
#: lib/graphql/resolvers/admin.ex:53
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:26
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:101
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:41
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"
#: lib/graphql/resolvers/admin.ex:236
#, elixir-format
#: lib/graphql/resolvers/admin.ex:237
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"
#: lib/graphql/resolvers/admin.ex:221
#, elixir-format
#: lib/graphql/resolvers/admin.ex:222
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"
#: lib/graphql/resolvers/admin.ex:260
#, elixir-format
#: lib/graphql/resolvers/admin.ex:261
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"
#: lib/graphql/resolvers/discussion.ex:76
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:77
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:94
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:256
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:140
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:74
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:133
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:330
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:211
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:191
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:104
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:203
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:295
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:178
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:162
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:218
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:125
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:109
msgid "The chosen password is too short."
msgstr "Le mot de passe choisi est trop court."
#, elixir-format
#: lib/mobilizon/users/user.ex:138
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:104
msgid "This email is already used."
msgstr "Cette adresse e-mail est déjà utilisée."
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Post not found"
msgstr "Billet non trouvé"
#, elixir-format
#: lib/graphql/error.ex:75
msgid "Invalid arguments passed"
msgstr "Paramètres fournis invalides"
#, elixir-format
#: lib/graphql/error.ex:81
msgid "Invalid credentials"
msgstr "Identifiants invalides"
#, elixir-format
#: lib/graphql/error.ex:79
msgid "Reset your password to login"
msgstr "Réinitialiser votre mot de passe pour vous connecter"
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
msgid "Resource not found"
msgstr "Ressource non trouvée"
#, elixir-format
#: lib/graphql/error.ex:93
msgid "Something went wrong"
msgstr "Quelque chose s'est mal passé"
#, elixir-format
#: lib/graphql/error.ex:74
msgid "Unknown Resource"
msgstr "Ressource inconnue"
#, elixir-format
#: lib/graphql/error.ex:84
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:76
msgid "You need to be logged in"
msgstr "Vous devez être connecté·e"
#: lib/graphql/resolvers/member.ex:116
#, elixir-format
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Vous ne pouvez pas accepter cette invitation avec ce profil."
#: lib/graphql/resolvers/member.ex:134
#, elixir-format
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Vous ne pouvez pas rejeter cette invitation avec ce profil."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
msgid "File doesn't have an allowed MIME type."
msgstr "Le fichier n'a pas un type MIME autorisé."
#: lib/graphql/resolvers/group.ex:167
#, elixir-format
#: lib/graphql/resolvers/group.ex:175
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:284
msgid "You can't edit this event."
msgstr "Vous ne pouvez pas éditer cet événement."
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "You can't attribute this event to this profile."
msgstr "Vous ne pouvez pas attribuer cet événement à ce profil."
#: lib/graphql/resolvers/member.ex:137
#, elixir-format
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Cette invitation n'existe pas."
#: lib/graphql/resolvers/member.ex:179
#, elixir-format
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Ce·tte membre a déjà été rejetté·e."
#: lib/graphql/resolvers/member.ex:186
#, elixir-format
#: lib/graphql/resolvers/member.ex:184
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:351
msgid "This username is already taken."
msgstr "Cet identifiant est déjà pris."
#: lib/graphql/resolvers/discussion.ex:73
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:74
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:245
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:89
msgid "Profile ID provided is not the anonymous profile one"
msgstr "L'ID du profil fourni n'est pas celui du profil anonyme"
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158 lib/graphql/resolvers/person.ex:250
#, elixir-format
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "L'image fournie est trop lourde"
#, elixir-format
#: lib/web/views/utils.ex:33
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:122
msgid "Error while creating resource"
msgstr "Erreur lors de la création de la resource"
#, elixir-format
#: lib/graphql/resolvers/user.ex:390
msgid "Invalid activation token"
msgstr "Jeton d'activation invalide"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:208
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:145 lib/graphql/resolvers/participant.ex:234
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"

View File

@ -1014,8 +1014,8 @@ msgstr ""
"conta en %{host} cambiouse a:"
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Se non fixeches este cambio ti mesma, é probable que alguén obtivese acceso "
@ -1653,21 +1653,22 @@ msgstr "Este é un sitio web de exemplo para probar Mobilizon."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr "fonte de %{name}"
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr "fonte dos eventos privados de %{actor} en %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr "fonte dos eventos públicos de %{actor} en %{instance}"
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr "Fonte para %{email} en %{instance}"
@ -1693,3 +1694,8 @@ msgstr "Detalles técnicos"
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
"O servidor Mobilizon %{instance} semella estar temporalmente fóra de servizo."
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -94,775 +94,775 @@ msgstr "ten que ser maior ou igual a %{number}"
msgid "must be equal to %{number}"
msgstr "ten que ser igual a %{number}"
#: lib/graphql/resolvers/user.ex:100
#, elixir-format
#: lib/graphql/resolvers/user.ex:100
msgid "Cannot refresh the token"
msgstr "Non puido actualizar o token"
#: lib/graphql/resolvers/group.ex:198
#, elixir-format
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "O perfil actual non é membro deste grupo"
#: lib/graphql/resolvers/group.ex:202
#, elixir-format
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "O perfil actual non é administrador do grupo seleccionado"
#: lib/graphql/resolvers/user.ex:501
#, elixir-format
#: lib/graphql/resolvers/user.ex:501
msgid "Error while saving user settings"
msgstr "Erro ó gardar os axustes de usuaria"
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Grupo non atopado"
#: lib/graphql/resolvers/group.ex:66
#, elixir-format
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Grupo con ID %{id} non atopado"
#: lib/graphql/resolvers/user.ex:80
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
"A autenticación non foi posible, o contrasinal ou o email non son correctos."
#: lib/graphql/resolvers/group.ex:258
#, elixir-format
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Membro non atopado"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
#: lib/graphql/resolvers/user.ex:406
#, elixir-format
msgid "No profile found for the moderator user"
msgstr "Non se atopou o perfil para a usuaria moderadora"
#: lib/graphql/resolvers/user.ex:193
#, elixir-format
#: lib/graphql/resolvers/user.ex:193
msgid "No user to validate with this email was found"
msgstr "Non se atopou unha usuaria con este email para validar"
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#, elixir-format
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Non se atopa ningunha usuaria con este email"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#, elixir-format
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "O perfil non pertence a unha usuaria autenticada"
#: lib/graphql/resolvers/user.ex:123
#, elixir-format
#: lib/graphql/resolvers/user.ex:123
msgid "Registrations are not open"
msgstr "O rexistro está pechado"
#: lib/graphql/resolvers/user.ex:331
#, elixir-format
#: lib/graphql/resolvers/user.ex:331
msgid "The current password is invalid"
msgstr "O contrasinal actual non é válido"
#: lib/graphql/resolvers/user.ex:376
#, elixir-format
#: lib/graphql/resolvers/user.ex:376
msgid "The new email doesn't seem to be valid"
msgstr "O novo email non semella ser válido"
#: lib/graphql/resolvers/user.ex:373
#, elixir-format
#: lib/graphql/resolvers/user.ex:373
msgid "The new email must be different"
msgstr "O novo email ten que ser diferente"
#: lib/graphql/resolvers/user.ex:334
#, elixir-format
#: lib/graphql/resolvers/user.ex:334
msgid "The new password must be different"
msgstr "O novo contrasinal ten que ser diferente"
#, elixir-format
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428
#: lib/graphql/resolvers/user.ex:431
#, elixir-format
msgid "The password provided is invalid"
msgstr "O contrasinal escrito non é válido"
#: lib/graphql/resolvers/user.ex:338
#, elixir-format
#: lib/graphql/resolvers/user.ex:338
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"O contrasinal escollido é demasiado curto, ten que ter 6 caracteres polo "
"menos."
#: lib/graphql/resolvers/user.ex:214
#, elixir-format
#: lib/graphql/resolvers/user.ex:214
msgid "This user can't reset their password"
msgstr "Esta usuaria non pode restablecer o seu contrasinal"
#: lib/graphql/resolvers/user.ex:76
#, elixir-format
#: lib/graphql/resolvers/user.ex:76
msgid "This user has been disabled"
msgstr "Estab usuaria foi desactivada"
#: lib/graphql/resolvers/user.ex:177
#, elixir-format
#: lib/graphql/resolvers/user.ex:177
msgid "Unable to validate user"
msgstr "Non se puido validar a usuaria"
#: lib/graphql/resolvers/user.ex:409
#, elixir-format
#: lib/graphql/resolvers/user.ex:409
msgid "User already disabled"
msgstr "A usuaria xa está desactivada"
#: lib/graphql/resolvers/user.ex:476
#, elixir-format
#: lib/graphql/resolvers/user.ex:476
msgid "User requested is not logged-in"
msgstr "A usuaria solicitada non está conectada"
#: lib/graphql/resolvers/group.ex:232
#, elixir-format
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Xa es membro deste grupo"
#: lib/graphql/resolvers/group.ex:265
#, elixir-format
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Non podes deixar este grupo porque es a única administradora"
#: lib/graphql/resolvers/group.ex:229
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Non podes unirte a este grupo"
#: lib/graphql/resolvers/group.ex:94
#, elixir-format
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Non podes facer listas de grupos porque non es moderadora."
#: lib/graphql/resolvers/user.ex:381
#, elixir-format
#: lib/graphql/resolvers/user.ex:381
msgid "You need to be logged-in to change your email"
msgstr "Tes que estar conectada para poder cambiar o email"
#: lib/graphql/resolvers/user.ex:346
#, elixir-format
#: lib/graphql/resolvers/user.ex:346
msgid "You need to be logged-in to change your password"
msgstr "Tes que estar conectada para poder cambiar o contrasinal"
#: lib/graphql/resolvers/group.ex:207
#, elixir-format
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Tes que estar conectada para poder eleminar un grupo"
#: lib/graphql/resolvers/user.ex:436
#, elixir-format
#: lib/graphql/resolvers/user.ex:436
msgid "You need to be logged-in to delete your account"
msgstr "Tes que estar conectada para poder eliminar a conta"
#: lib/graphql/resolvers/group.ex:237
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Tes que estar conectada para poder unirte a un grupo"
#: lib/graphql/resolvers/group.ex:270
#, elixir-format
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Tes que estar conectada para poder deixar un grupo"
#: lib/graphql/resolvers/group.ex:172
#, elixir-format
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Tes que estar conectada para poder actualizar un grupo"
#: lib/graphql/resolvers/user.ex:105
#, elixir-format
#: lib/graphql/resolvers/user.ex:105
msgid "You need to have an existing token to get a refresh token"
msgstr "Tes que ter un token existente para obter un token actualizado"
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
#, elixir-format
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
msgid "You requested again a confirmation email too soon"
msgstr "Solicitaches demasiado pronto un email de confirmación"
#: lib/graphql/resolvers/user.ex:126
#, elixir-format
#: lib/graphql/resolvers/user.ex:126
msgid "Your email is not on the allowlist"
msgstr "O teu email non está na lista dos permitidos"
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
msgid "Error while performing background task"
msgstr "Erro ó executar a tarefa en segundo plano"
#: lib/graphql/resolvers/actor.ex:27
#, elixir-format
#: lib/graphql/resolvers/actor.ex:27
msgid "No profile found with this ID"
msgstr "Non se atopa o perfil con este ID"
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
#, elixir-format
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
msgid "No remote profile found with this ID"
msgstr "Non se atopa o perfil remoto con este ID"
#: lib/graphql/resolvers/actor.ex:69
#, elixir-format
#: lib/graphql/resolvers/actor.ex:69
msgid "Only moderators and administrators can suspend a profile"
msgstr "Só moderadoras e administradoras poden suspender un perfil"
#: lib/graphql/resolvers/actor.ex:99
#, elixir-format
#: lib/graphql/resolvers/actor.ex:99
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Só moderadoras e administradoras pode restablecer un perfil"
#: lib/graphql/resolvers/actor.ex:24
#, elixir-format
#: lib/graphql/resolvers/actor.ex:24
msgid "Only remote profiles may be refreshed"
msgstr "Só os perfís remotos poderían ser actualizdos"
#: lib/graphql/resolvers/actor.ex:61
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61
msgid "Profile already suspended"
msgstr "O perfil xa está suspendido"
#: lib/graphql/resolvers/participant.ex:92
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
msgid "A valid email is required by your instance"
msgstr "A túa instancia require un email válido"
#: lib/graphql/resolvers/participant.ex:86
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
msgid "Anonymous participation is not enabled"
msgstr "Non está permitida a participación ánonima"
#: lib/graphql/resolvers/person.ex:195
#, elixir-format
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Non se pode eliminar a última administradora dun grupo"
#: lib/graphql/resolvers/person.ex:192
#, elixir-format
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Non se pode eliminar a última identidade dunha usuaria"
#: lib/graphql/resolvers/comment.ex:108
#, elixir-format
#: lib/graphql/resolvers/comment.ex:108
msgid "Comment is already deleted"
msgstr "O comentario xa foi eliminado"
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
msgid "Discussion not found"
msgstr "Non se atopa a conversa"
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
msgid "Error while saving report"
msgstr "Erro ó gardar a denuncia"
#: lib/graphql/resolvers/report.ex:96
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
msgid "Error while updating report"
msgstr "Erro ó actualizar a denuncia"
#: lib/graphql/resolvers/participant.ex:127
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
msgid "Event id not found"
msgstr "Non se atopou o ID do evento"
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281
#: lib/graphql/resolvers/event.ex:325
#, elixir-format
msgid "Event not found"
msgstr "Evento non atopado"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
#, elixir-format
msgid "Event with this ID %{id} doesn't exist"
msgstr "Non existe un evento co ID %{id}"
#: lib/graphql/resolvers/participant.ex:99
#, elixir-format
#: lib/graphql/resolvers/participant.ex:99
msgid "Internal Error"
msgstr "Erro interno"
#: lib/graphql/resolvers/discussion.ex:201
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Non hai conversa con ID %{id}"
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
msgid "No profile found for user"
msgstr "Non se atopou o perfil da usuaria"
#: lib/graphql/resolvers/feed_token.ex:63
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Non hai tal token da fonte"
#: lib/graphql/resolvers/participant.ex:237
#, elixir-format
#: lib/graphql/resolvers/participant.ex:237
msgid "Participant already has role %{role}"
msgstr "A participante xa ten o rol %{role}"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
#, elixir-format
msgid "Participant not found"
msgstr "Non se atopou a participante"
#: lib/graphql/resolvers/person.ex:29
#, elixir-format
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Non se atopou a persoa con ID %{id}"
#: lib/graphql/resolvers/person.ex:51
#, elixir-format
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Non se atopa a persoa con nome de usuaria %{username}"
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
msgid "Post ID is not a valid ID"
msgstr "ID da publicación non é un ID válido"
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
#, elixir-format
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
msgid "Post doesn't exist"
msgstr "Non existe a publicación"
#: lib/graphql/resolvers/member.ex:83
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
msgid "Profile invited doesn't exist"
msgstr "O perfil convidado non existe"
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
msgid "Profile is already a member of this group"
msgstr "O perfil xa é membro deste grupo"
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
#, elixir-format
msgid "Profile is not member of group"
msgstr "O perfil non é membro do grupo"
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#, elixir-format
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Perfil non atopado"
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
#, elixir-format
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "O perfil da moderadora proporcionado non ten permisos neste evento"
#: lib/graphql/resolvers/report.ex:36
#, elixir-format
msgid "Report not found"
msgstr "Denuncia non atopada"
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
msgid "Resource doesn't exist"
msgstr "Non existe o recurso"
#: lib/graphql/resolvers/participant.ex:120
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
msgid "The event has already reached its maximum capacity"
msgstr "Este evento xa acadou a súa capacidade máxima"
#: lib/graphql/resolvers/participant.ex:260
#, elixir-format
#: lib/graphql/resolvers/participant.ex:260
msgid "This token is invalid"
msgstr "Este token non é válido"
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
msgid "Todo doesn't exist"
msgstr "Lista de tarefas non existe"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
#, elixir-format
msgid "Todo list doesn't exist"
msgstr "A lista de tarefas non existe"
#: lib/graphql/resolvers/feed_token.ex:69
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Non existe o token"
#: lib/graphql/resolvers/feed_token.ex:66
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "O token non é un UUID válido"
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Usuaria non atopada"
#: lib/graphql/resolvers/person.ex:256
#, elixir-format
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Xa tes un perfil para esta usuaria"
#: lib/graphql/resolvers/participant.ex:130
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
msgid "You are already a participant of this event"
msgstr "Xa es unha participante neste evento"
#: lib/graphql/resolvers/member.ex:86
#, elixir-format
#: lib/graphql/resolvers/member.ex:86
msgid "You are not a member of this group"
msgstr "Non es membro deste grupo"
#: lib/graphql/resolvers/member.ex:151
#, elixir-format
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Non es moderadora ou administradora deste grupo"
#: lib/graphql/resolvers/comment.ex:54
#, elixir-format
#: lib/graphql/resolvers/comment.ex:54
msgid "You are not allowed to create a comment if not connected"
msgstr "Non tes permiso para crear un comentario sen estar conectada"
#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Non tes permiso para crear un token da fonte se non estás conectada"
#: lib/graphql/resolvers/comment.ex:113
#, elixir-format
#: lib/graphql/resolvers/comment.ex:113
msgid "You are not allowed to delete a comment if not connected"
msgstr "Non tes permiso para eliminar un comentario se non estás conectada"
#: lib/graphql/resolvers/feed_token.ex:78
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Non tes permiso para eliminar o token da fonte se non estás conectada"
#: lib/graphql/resolvers/comment.ex:76
#, elixir-format
#: lib/graphql/resolvers/comment.ex:76
msgid "You are not allowed to update a comment if not connected"
msgstr "Non tes permiso para actualizar un comentario se non estás conectada"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Non podes saír do evento porque es a única creadora do evento que participa"
#: lib/graphql/resolvers/member.ex:155
#, elixir-format
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Non podes adxudicarte un rol menor neste grupo porque es a única "
"administradora"
#: lib/graphql/resolvers/comment.ex:104
#, elixir-format
#: lib/graphql/resolvers/comment.ex:104
msgid "You cannot delete this comment"
msgstr "Non podes eliminar este comentario"
#: lib/graphql/resolvers/event.ex:321
#, elixir-format
#: lib/graphql/resolvers/event.ex:321
msgid "You cannot delete this event"
msgstr "Non podes eliminar este evento"
#: lib/graphql/resolvers/member.ex:89
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
msgid "You cannot invite to this group"
msgstr "Non podes convidar a este grupo"
#: lib/graphql/resolvers/feed_token.ex:72
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Non tes permiso para eliminar este token"
#: lib/graphql/resolvers/admin.ex:52
#, elixir-format
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Tes que estar conectada e ser moderadora para ver listas de rexistros de "
"accións"
#: lib/graphql/resolvers/report.ex:26
#, elixir-format
#: lib/graphql/resolvers/report.ex:26
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Tes que estar conectada e ser moderadora para ver listas de denuncias"
#: lib/graphql/resolvers/report.ex:101
#, elixir-format
#: lib/graphql/resolvers/report.ex:101
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Tes que estas conectada e ser moderadora para actualizar unha denuncia"
#: lib/graphql/resolvers/report.ex:41
#, elixir-format
#: lib/graphql/resolvers/report.ex:41
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Tes que estar conectada e ser moderadora para ver unha denuncia"
#: lib/graphql/resolvers/admin.ex:236
#, elixir-format
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Tes que estar conectada e ser administradora para acceder ós axustes de "
"administración"
#: lib/graphql/resolvers/admin.ex:221
#, elixir-format
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Tes que estar conectada e ser administradora para acceder ó taboleiro de "
"estatísticas"
#: lib/graphql/resolvers/admin.ex:260
#, elixir-format
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Tes que estar conectada e ser administradora para gardar os axustes de "
"administración"
#: lib/graphql/resolvers/discussion.ex:76
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Tes que estar conectada para acceder ás conversas"
#: lib/graphql/resolvers/resource.ex:94
#, elixir-format
#: lib/graphql/resolvers/resource.ex:94
msgid "You need to be logged-in to access resources"
msgstr "Tes que estar conectada para acceder ós recursos"
#: lib/graphql/resolvers/event.ex:256
#, elixir-format
#: lib/graphql/resolvers/event.ex:256
msgid "You need to be logged-in to create events"
msgstr "Tes que estar conectada para crear eventos"
#: lib/graphql/resolvers/post.ex:140
#, elixir-format
#: lib/graphql/resolvers/post.ex:140
msgid "You need to be logged-in to create posts"
msgstr "Tes que estar conectada para crear publicacións"
#: lib/graphql/resolvers/report.ex:74
#, elixir-format
#: lib/graphql/resolvers/report.ex:74
msgid "You need to be logged-in to create reports"
msgstr "Tes que estar conectada para crear denuncias"
#: lib/graphql/resolvers/resource.ex:133
#, elixir-format
#: lib/graphql/resolvers/resource.ex:133
msgid "You need to be logged-in to create resources"
msgstr "Tes que estar conectada para crear recursos"
#: lib/graphql/resolvers/event.ex:330
#, elixir-format
#: lib/graphql/resolvers/event.ex:330
msgid "You need to be logged-in to delete an event"
msgstr "Tes que estar conectada para eliminar un evento"
#: lib/graphql/resolvers/post.ex:211
#, elixir-format
#: lib/graphql/resolvers/post.ex:211
msgid "You need to be logged-in to delete posts"
msgstr "Tes que estar conectada para eliminar publicacións"
#: lib/graphql/resolvers/resource.ex:191
#, elixir-format
#: lib/graphql/resolvers/resource.ex:191
msgid "You need to be logged-in to delete resources"
msgstr "Tes que estar conectada para eliminar recursos"
#: lib/graphql/resolvers/participant.ex:104
#, elixir-format
#: lib/graphql/resolvers/participant.ex:104
msgid "You need to be logged-in to join an event"
msgstr "Tes que estar conectada para unirte a un evento"
#: lib/graphql/resolvers/participant.ex:203
#, elixir-format
#: lib/graphql/resolvers/participant.ex:203
msgid "You need to be logged-in to leave an event"
msgstr "Tes que estar conectada para saír dun evento"
#: lib/graphql/resolvers/event.ex:295
#, elixir-format
#: lib/graphql/resolvers/event.ex:295
msgid "You need to be logged-in to update an event"
msgstr "Tes que estar conectada para actualizar un evento"
#: lib/graphql/resolvers/post.ex:178
#, elixir-format
#: lib/graphql/resolvers/post.ex:178
msgid "You need to be logged-in to update posts"
msgstr "Tes que estar conectada para actualizar publicacións"
#: lib/graphql/resolvers/resource.ex:162
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "You need to be logged-in to update resources"
msgstr "Tes que estar conectada para actualizar recursos"
#: lib/graphql/resolvers/resource.ex:218
#, elixir-format
#: lib/graphql/resolvers/resource.ex:218
msgid "You need to be logged-in to view a resource preview"
msgstr "Tes que estar conectada para ver vista previa dun recurso"
#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
#: lib/graphql/resolvers/resource.ex:125
msgid "Parent resource doesn't belong to this group"
msgstr "O recurso relacionado non pertence a este grupo"
#: lib/mobilizon/users/user.ex:109
#, elixir-format
#: lib/mobilizon/users/user.ex:109
msgid "The chosen password is too short."
msgstr "O contrasinal elexido é demasiado curto."
#: lib/mobilizon/users/user.ex:138
#, elixir-format
#: lib/mobilizon/users/user.ex:138
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"O token de rexistro xa está a ser usado, semella un problema pola nosa parte."
#: lib/mobilizon/users/user.ex:104
#, elixir-format
#: lib/mobilizon/users/user.ex:104
msgid "This email is already used."
msgstr "Este email xa se está a usar."
#: lib/graphql/error.ex:88
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Post not found"
msgstr "Non se atopa a publicación"
#: lib/graphql/error.ex:75
#, elixir-format
#: lib/graphql/error.ex:75
msgid "Invalid arguments passed"
msgstr "Argumentos proporcionados non válidos"
#: lib/graphql/error.ex:81
#, elixir-format
#: lib/graphql/error.ex:81
msgid "Invalid credentials"
msgstr "Credenciais non válidas"
#: lib/graphql/error.ex:79
#, elixir-format
#: lib/graphql/error.ex:79
msgid "Reset your password to login"
msgstr "Restablece o teu contrasinal para conectar"
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
msgid "Resource not found"
msgstr "Recurso non atopado"
#: lib/graphql/error.ex:93
#, elixir-format
#: lib/graphql/error.ex:93
msgid "Something went wrong"
msgstr "Algo foi mal"
#: lib/graphql/error.ex:74
#, elixir-format
#: lib/graphql/error.ex:74
msgid "Unknown Resource"
msgstr "Recurso descoñecido"
#: lib/graphql/error.ex:84
#, elixir-format
#: lib/graphql/error.ex:84
msgid "You don't have permission to do this"
msgstr "Non tes permiso para facer isto"
#: lib/graphql/error.ex:76
#, elixir-format
#: lib/graphql/error.ex:76
msgid "You need to be logged in"
msgstr "Tes que estar conectada"
#: lib/graphql/resolvers/member.ex:116
#, elixir-format
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Non podes aceptar este convite con este perfil."
#: lib/graphql/resolvers/member.ex:134
#, elixir-format
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Non podes rexeitar este convite con este perfil."
#: lib/graphql/resolvers/media.ex:62
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
msgid "File doesn't have an allowed MIME type."
msgstr "O ficheiro non ten un tipo MIME permitido."
#: lib/graphql/resolvers/group.ex:167
#, elixir-format
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "O perfil non é administrador do grupo"
#: lib/graphql/resolvers/event.ex:284
#, elixir-format
#: lib/graphql/resolvers/event.ex:284
msgid "You can't edit this event."
msgstr "Non podes editar este evento."
#: lib/graphql/resolvers/event.ex:287
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "You can't attribute this event to this profile."
msgstr "Non podes atribuír este evento a este perfil."
#: lib/graphql/resolvers/member.ex:137
#, elixir-format
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "O convite non existe."
#: lib/graphql/resolvers/member.ex:179
#, elixir-format
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Este membro xa foi rexeitado."
#: lib/graphql/resolvers/member.ex:186
#, elixir-format
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Non tes permiso para eliminar este membro."
#: lib/mobilizon/actors/actor.ex:351
#, elixir-format
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr "Este nome de usuaria xa está pillado."
#: lib/graphql/resolvers/discussion.ex:73
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Debes proporcionar ou ben un ID ou nome para acceder á conversa"
#: lib/graphql/resolvers/event.ex:245
#, elixir-format
#: lib/graphql/resolvers/event.ex:245
msgid "Organizer profile is not owned by the user"
msgstr "O perfil da organización non pertence á usuaria"
#: lib/graphql/resolvers/participant.ex:89
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
msgid "Profile ID provided is not the anonymous profile one"
msgstr "O ID do perfil proporcionado non é o perfil anónimo"
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#, elixir-format
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "A imaxe proporcionada é demasiado grande (mb)"
#: lib/web/views/utils.ex:33
#, elixir-format
#: lib/web/views/utils.ex:33
msgid "Index file not found. You need to recompile the front-end."
msgstr "Non se atopa o ficheiro Index. Tes que recompilar o front-end."
#: lib/graphql/resolvers/resource.ex:122
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Erro ao crear o recurso"
#: lib/graphql/resolvers/user.ex:390
#, elixir-format
#: lib/graphql/resolvers/user.ex:390
msgid "Invalid activation token"
msgstr "O token de activación non é válido"
#: lib/graphql/resolvers/resource.ex:208
#, elixir-format
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr "Non se puideron obter os detalles do recurso desde o URL."
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "O perfil da moderadora proporcionado non ten permisos neste evento"

View File

@ -887,8 +887,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1413,21 +1413,22 @@ msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1450,3 +1451,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -110,784 +110,784 @@ msgstr "nagyobbnak vagy egyenlőnek kell lennie mint %{number}"
msgid "must be equal to %{number}"
msgstr "egyenlőnek kell lennie ezzel: %{number}"
#: lib/graphql/resolvers/user.ex:100
#, elixir-format
#: lib/graphql/resolvers/user.ex:100
msgid "Cannot refresh the token"
msgstr "Nem lehet frissíteni a tokent"
#: lib/graphql/resolvers/group.ex:198
#, elixir-format
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "A jelenlegi profil nem tagja ennek a csoportnak"
#: lib/graphql/resolvers/group.ex:202
#, elixir-format
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "A jelenlegi profil nem adminisztrátora a kijelölt csoportnak"
#: lib/graphql/resolvers/user.ex:501
#, elixir-format
#: lib/graphql/resolvers/user.ex:501
msgid "Error while saving user settings"
msgstr "Hiba a felhasználói beállítások mentésekor"
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Nem található a csoport"
#: lib/graphql/resolvers/group.ex:66
#, elixir-format
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Nem található %{id} azonosítóval rendelkező csoport"
#: lib/graphql/resolvers/user.ex:80
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Lehetetlen hitelesíteni, vagy az e-mail, vagy a jelszó érvénytelen."
#: lib/graphql/resolvers/group.ex:258
#, elixir-format
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Nem található a tag"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
#: lib/graphql/resolvers/user.ex:406
#, elixir-format
msgid "No profile found for the moderator user"
msgstr "Nem található profil a moderátor felhasználóhoz"
#: lib/graphql/resolvers/user.ex:193
#, elixir-format
#: lib/graphql/resolvers/user.ex:193
msgid "No user to validate with this email was found"
msgstr "Nem található ezzel az e-mail-címmel ellenőrzendő felhasználó"
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#, elixir-format
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Nem található ezzel az e-mail-címmel rendelkező felhasználó"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#, elixir-format
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "A profilt nem hitelesített felhasználó birtokolja"
#: lib/graphql/resolvers/user.ex:123
#, elixir-format
#: lib/graphql/resolvers/user.ex:123
msgid "Registrations are not open"
msgstr "A regisztrációk nincsenek nyitva"
#: lib/graphql/resolvers/user.ex:331
#, elixir-format
#: lib/graphql/resolvers/user.ex:331
msgid "The current password is invalid"
msgstr "A jelenlegi jelszó érvénytelen"
#: lib/graphql/resolvers/user.ex:376
#, elixir-format
#: lib/graphql/resolvers/user.ex:376
msgid "The new email doesn't seem to be valid"
msgstr "Az új e-mail-cím nem tűnik érvényesnek"
#: lib/graphql/resolvers/user.ex:373
#, elixir-format
#: lib/graphql/resolvers/user.ex:373
msgid "The new email must be different"
msgstr "Az új e-mail-címnek eltérőnek kell lennie"
#: lib/graphql/resolvers/user.ex:334
#, elixir-format
#: lib/graphql/resolvers/user.ex:334
msgid "The new password must be different"
msgstr "Az új jelszónak eltérőnek kell lennie"
#, elixir-format
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428
#: lib/graphql/resolvers/user.ex:431
#, elixir-format
msgid "The password provided is invalid"
msgstr "A megadott jelszó érvénytelen"
#: lib/graphql/resolvers/user.ex:338
#, elixir-format
#: lib/graphql/resolvers/user.ex:338
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"A választott jelszó túl rövid. Győződjön meg arról, hogy a jelszava "
"tartalmazzon legalább 6 karaktert."
#: lib/graphql/resolvers/user.ex:214
#, elixir-format
#: lib/graphql/resolvers/user.ex:214
msgid "This user can't reset their password"
msgstr "Ez a felhasználó nem tudja visszaállítani a jelszavát"
#: lib/graphql/resolvers/user.ex:76
#, elixir-format
#: lib/graphql/resolvers/user.ex:76
msgid "This user has been disabled"
msgstr "Ez a felhasználó le lett tiltva"
#: lib/graphql/resolvers/user.ex:177
#, elixir-format
#: lib/graphql/resolvers/user.ex:177
msgid "Unable to validate user"
msgstr "Nem lehet ellenőrizni a felhasználót"
#: lib/graphql/resolvers/user.ex:409
#, elixir-format
#: lib/graphql/resolvers/user.ex:409
msgid "User already disabled"
msgstr "A felhasználó már le van tiltva"
#: lib/graphql/resolvers/user.ex:476
#, elixir-format
#: lib/graphql/resolvers/user.ex:476
msgid "User requested is not logged-in"
msgstr "A kért felhasználó nincs bejelentkezve"
#: lib/graphql/resolvers/group.ex:232
#, elixir-format
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Már tagja ennek a csoportnak"
#: lib/graphql/resolvers/group.ex:265
#, elixir-format
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Nem hagyhatja el ezt a csoportot, mert Ön az egyedüli adminisztrátor"
#: lib/graphql/resolvers/group.ex:229
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Nem csatlakozhat ehhez a csoporthoz"
#: lib/graphql/resolvers/group.ex:94
#, elixir-format
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Lehet, hogy nem sorolhatja fel a csoportokat, hacsak nem moderátor."
#: lib/graphql/resolvers/user.ex:381
#, elixir-format
#: lib/graphql/resolvers/user.ex:381
msgid "You need to be logged-in to change your email"
msgstr "Bejelentkezve kell lennie az e-mail-címe megváltoztatásához"
#: lib/graphql/resolvers/user.ex:346
#, elixir-format
#: lib/graphql/resolvers/user.ex:346
msgid "You need to be logged-in to change your password"
msgstr "Bejelentkezve kell lennie a jelszava megváltoztatásához"
#: lib/graphql/resolvers/group.ex:207
#, elixir-format
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Bejelentkezve kell lennie egy csoport törléséhez"
#: lib/graphql/resolvers/user.ex:436
#, elixir-format
#: lib/graphql/resolvers/user.ex:436
msgid "You need to be logged-in to delete your account"
msgstr "Bejelentkezve kell lennie a fiókja törléséhez"
#: lib/graphql/resolvers/group.ex:237
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Bejelentkezve kell lennie egy csoporthoz való csatlakozáshoz"
#: lib/graphql/resolvers/group.ex:270
#, elixir-format
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Bejelentkezve kell lennie egy csoportból való kilépéshez"
#: lib/graphql/resolvers/group.ex:172
#, elixir-format
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Bejelentkezve kell lennie egy csoport frissítéséhez"
#: lib/graphql/resolvers/user.ex:105
#, elixir-format
#: lib/graphql/resolvers/user.ex:105
msgid "You need to have an existing token to get a refresh token"
msgstr "Szüksége van egy meglévő tokenre egy frissítési token beszerzéséhez"
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
#, elixir-format
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
msgid "You requested again a confirmation email too soon"
msgstr "Túl hamar kért újra egy megerősítő e-mailt"
#: lib/graphql/resolvers/user.ex:126
#, elixir-format
#: lib/graphql/resolvers/user.ex:126
msgid "Your email is not on the allowlist"
msgstr "Az e-mail-címe nincs rajta az engedélyezési listán"
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
msgid "Error while performing background task"
msgstr "Hiba a háttérfeladat végrehajtásakor"
#: lib/graphql/resolvers/actor.ex:27
#, elixir-format
#: lib/graphql/resolvers/actor.ex:27
msgid "No profile found with this ID"
msgstr "Nem található profil ezzel az azonosítóval"
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
#, elixir-format
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
msgid "No remote profile found with this ID"
msgstr "Nem található távoli profil ezzel az azonosítóval"
#: lib/graphql/resolvers/actor.ex:69
#, elixir-format
#: lib/graphql/resolvers/actor.ex:69
msgid "Only moderators and administrators can suspend a profile"
msgstr "Csak moderátorok és adminisztrátorok függeszthetnek fel egy profilt"
#: lib/graphql/resolvers/actor.ex:99
#, elixir-format
#: lib/graphql/resolvers/actor.ex:99
msgid "Only moderators and administrators can unsuspend a profile"
msgstr ""
"Csak moderátorok és adminisztrátorok szüntethetik meg egy profil "
"felfüggesztését"
#: lib/graphql/resolvers/actor.ex:24
#, elixir-format
#: lib/graphql/resolvers/actor.ex:24
msgid "Only remote profiles may be refreshed"
msgstr "Csak távoli profilokat lehet frissíteni"
#: lib/graphql/resolvers/actor.ex:61
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61
msgid "Profile already suspended"
msgstr "A profil már fel van függesztve"
#: lib/graphql/resolvers/participant.ex:92
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
msgid "A valid email is required by your instance"
msgstr "Érvényes e-mail-címet követelt meg az Ön példánya"
#: lib/graphql/resolvers/participant.ex:86
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
msgid "Anonymous participation is not enabled"
msgstr "A névtelen részvétel nincs engedélyezve"
#: lib/graphql/resolvers/person.ex:195
#, elixir-format
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Nem lehet eltávolítani egy csoport utolsó adminisztrátorát"
#: lib/graphql/resolvers/person.ex:192
#, elixir-format
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Nem lehet eltávolítani egy felhasználó utolsó személyazonosságát"
#: lib/graphql/resolvers/comment.ex:108
#, elixir-format
#: lib/graphql/resolvers/comment.ex:108
msgid "Comment is already deleted"
msgstr "A hozzászólást már törölték"
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
msgid "Discussion not found"
msgstr "Nem található a megbeszélés"
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
msgid "Error while saving report"
msgstr "Hiba a jelentés mentésekor"
#: lib/graphql/resolvers/report.ex:96
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
msgid "Error while updating report"
msgstr "Hiba a jelentés frissítésekor"
#: lib/graphql/resolvers/participant.ex:127
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
msgid "Event id not found"
msgstr "Nem található az eseményazonosító"
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281
#: lib/graphql/resolvers/event.ex:325
#, elixir-format
msgid "Event not found"
msgstr "Nem található az esemény"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
#, elixir-format
msgid "Event with this ID %{id} doesn't exist"
msgstr "Ezzel a(z) %{id} azonosítóval rendelkező esemény nem létezik"
#: lib/graphql/resolvers/participant.ex:99
#, elixir-format
#: lib/graphql/resolvers/participant.ex:99
msgid "Internal Error"
msgstr "Belső hiba"
#: lib/graphql/resolvers/discussion.ex:201
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Nincs %{id} azonosítóval rendelkező megbeszélés"
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
msgid "No profile found for user"
msgstr "Nem található profil a felhasználóhoz"
#: lib/graphql/resolvers/feed_token.ex:63
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Nincs ilyen hírforrástoken"
#: lib/graphql/resolvers/participant.ex:237
#, elixir-format
#: lib/graphql/resolvers/participant.ex:237
msgid "Participant already has role %{role}"
msgstr "A résztvevő már rendelkezik %{role} szereppel"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
#, elixir-format
msgid "Participant not found"
msgstr "Nem található a résztvevő"
#: lib/graphql/resolvers/person.ex:29
#, elixir-format
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Nem található %{id} azonosítóval rendelkező személy"
#: lib/graphql/resolvers/person.ex:51
#, elixir-format
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Nem található %{username} felhasználónévvel rendelkező személy"
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
msgid "Post ID is not a valid ID"
msgstr "A hozzászólás-azonosító nem érvényes azonosító"
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
#, elixir-format
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
msgid "Post doesn't exist"
msgstr "A hozzászólás nem létezik"
#: lib/graphql/resolvers/member.ex:83
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
msgid "Profile invited doesn't exist"
msgstr "A meghívott profil nem létezik"
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
msgid "Profile is already a member of this group"
msgstr "A profil már tagja ennek a csoportnak"
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
#, elixir-format
msgid "Profile is not member of group"
msgstr "A profil nem tagja a csoportnak"
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#, elixir-format
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Nem található a profil"
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
#, elixir-format
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "A megadott moderátorprofilnak nincs jogosultsága ezen az eseményen"
#: lib/graphql/resolvers/report.ex:36
#, elixir-format
msgid "Report not found"
msgstr "Nem található a jelentés"
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
msgid "Resource doesn't exist"
msgstr "Az erőforrás nem létezik"
#: lib/graphql/resolvers/participant.ex:120
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
msgid "The event has already reached its maximum capacity"
msgstr "Az esemény már elérte a legnagyobb kapacitását"
#: lib/graphql/resolvers/participant.ex:260
#, elixir-format
#: lib/graphql/resolvers/participant.ex:260
msgid "This token is invalid"
msgstr "Ez a token érvénytelen"
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
msgid "Todo doesn't exist"
msgstr "A tennivaló nem létezik"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
#, elixir-format
msgid "Todo list doesn't exist"
msgstr "A tennivalólista nem létezik"
#: lib/graphql/resolvers/feed_token.ex:69
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "A token nem létezik"
#: lib/graphql/resolvers/feed_token.ex:66
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "A token nem érvényes UUID"
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Nem található a felhasználó"
#: lib/graphql/resolvers/person.ex:256
#, elixir-format
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Már rendelkezik profillal ehhez a felhasználóhoz"
#: lib/graphql/resolvers/participant.ex:130
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
msgid "You are already a participant of this event"
msgstr "Már résztvevője ennek az eseménynek"
#: lib/graphql/resolvers/member.ex:86
#, elixir-format
#: lib/graphql/resolvers/member.ex:86
msgid "You are not a member of this group"
msgstr "Nem tagja ennek a csoportnak"
#: lib/graphql/resolvers/member.ex:151
#, elixir-format
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Nem moderátor vagy adminisztrátor ennél a csoportnál"
#: lib/graphql/resolvers/comment.ex:54
#, elixir-format
#: lib/graphql/resolvers/comment.ex:54
msgid "You are not allowed to create a comment if not connected"
msgstr "Nem hozhat létre hozzászólást, ha nincs kapcsolódva"
#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Nem hozhat létre hírforrástokent, ha nincs kapcsolódva"
#: lib/graphql/resolvers/comment.ex:113
#, elixir-format
#: lib/graphql/resolvers/comment.ex:113
msgid "You are not allowed to delete a comment if not connected"
msgstr "Nem törölhet hozzászólást, ha nincs kapcsolódva"
#: lib/graphql/resolvers/feed_token.ex:78
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Nem törölhet hírforrástokent, ha nincs kapcsolódva"
#: lib/graphql/resolvers/comment.ex:76
#, elixir-format
#: lib/graphql/resolvers/comment.ex:76
msgid "You are not allowed to update a comment if not connected"
msgstr "Nem frissíthet hozzászólást, ha nincs kapcsolódva"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Nem hagyhatja el az eseményt, mert Ön az egyedüli eseménylétrehozó résztvevő"
#: lib/graphql/resolvers/member.ex:155
#, elixir-format
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Nem állíthatja magát alacsonyabb tagszerepre ennél a csoportnál, mert Ön az "
"egyedüli adminisztrátor"
#: lib/graphql/resolvers/comment.ex:104
#, elixir-format
#: lib/graphql/resolvers/comment.ex:104
msgid "You cannot delete this comment"
msgstr "Nem tudja törölni ezt a hozzászólást"
#: lib/graphql/resolvers/event.ex:321
#, elixir-format
#: lib/graphql/resolvers/event.ex:321
msgid "You cannot delete this event"
msgstr "Nem tudja törölni ezt az eseményt"
#: lib/graphql/resolvers/member.ex:89
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
msgid "You cannot invite to this group"
msgstr "Nem tud meghívni ebbe a csoportba"
#: lib/graphql/resolvers/feed_token.ex:72
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Nincs jogosultsága a token törléséhez"
#: lib/graphql/resolvers/admin.ex:52
#, elixir-format
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Bejelentkezve kell lennie és moderátornak kell lennie a műveletnaplók "
"felsorolásához"
#: lib/graphql/resolvers/report.ex:26
#, elixir-format
#: lib/graphql/resolvers/report.ex:26
msgid "You need to be logged-in and a moderator to list reports"
msgstr ""
"Bejelentkezve kell lennie és moderátornak kell lennie a jelentések "
"felsorolásához"
#: lib/graphql/resolvers/report.ex:101
#, elixir-format
#: lib/graphql/resolvers/report.ex:101
msgid "You need to be logged-in and a moderator to update a report"
msgstr ""
"Bejelentkezve kell lennie és moderátornak kell lennie egy jelentés "
"frissítéséhez"
#: lib/graphql/resolvers/report.ex:41
#, elixir-format
#: lib/graphql/resolvers/report.ex:41
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
"Bejelentkezve kell lennie és moderátornak kell lennie egy jelentés "
"megtekintéséhez"
#: lib/graphql/resolvers/admin.ex:236
#, elixir-format
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Bejelentkezve kell lennie és adminisztrátornak kell lennie az "
"adminisztrátori beállításokhoz való hozzáféréshez"
#: lib/graphql/resolvers/admin.ex:221
#, elixir-format
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Bejelentkezve kell lennie és adminisztrátornak kell lennie a vezérlőpulti "
"statisztikákhoz való hozzáféréshez"
#: lib/graphql/resolvers/admin.ex:260
#, elixir-format
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Bejelentkezve kell lennie és adminisztrátornak kell lennie az "
"adminisztrátori beállítások mentéséhez"
#: lib/graphql/resolvers/discussion.ex:76
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Bejelentkezve kell lennie a megbeszélésekhez való hozzáféréshez"
#: lib/graphql/resolvers/resource.ex:94
#, elixir-format
#: lib/graphql/resolvers/resource.ex:94
msgid "You need to be logged-in to access resources"
msgstr "Bejelentkezve kell lennie az erőforrásokhoz való hozzáféréshez"
#: lib/graphql/resolvers/event.ex:256
#, elixir-format
#: lib/graphql/resolvers/event.ex:256
msgid "You need to be logged-in to create events"
msgstr "Bejelentkezve kell lennie az események létrehozásához"
#: lib/graphql/resolvers/post.ex:140
#, elixir-format
#: lib/graphql/resolvers/post.ex:140
msgid "You need to be logged-in to create posts"
msgstr "Bejelentkezve kell lennie a hozzászólások létrehozásához"
#: lib/graphql/resolvers/report.ex:74
#, elixir-format
#: lib/graphql/resolvers/report.ex:74
msgid "You need to be logged-in to create reports"
msgstr "Bejelentkezve kell lennie a jelentések létrehozásához"
#: lib/graphql/resolvers/resource.ex:133
#, elixir-format
#: lib/graphql/resolvers/resource.ex:133
msgid "You need to be logged-in to create resources"
msgstr "Bejelentkezve kell lennie az erőforrások létrehozásához"
#: lib/graphql/resolvers/event.ex:330
#, elixir-format
#: lib/graphql/resolvers/event.ex:330
msgid "You need to be logged-in to delete an event"
msgstr "Bejelentkezve kell lennie egy esemény törléséhez"
#: lib/graphql/resolvers/post.ex:211
#, elixir-format
#: lib/graphql/resolvers/post.ex:211
msgid "You need to be logged-in to delete posts"
msgstr "Bejelentkezve kell lennie a hozzászólások törléséhez"
#: lib/graphql/resolvers/resource.ex:191
#, elixir-format
#: lib/graphql/resolvers/resource.ex:191
msgid "You need to be logged-in to delete resources"
msgstr "Bejelentkezve kell lennie az erőforrások törléséhez"
#: lib/graphql/resolvers/participant.ex:104
#, elixir-format
#: lib/graphql/resolvers/participant.ex:104
msgid "You need to be logged-in to join an event"
msgstr "Bejelentkezve kell lennie egy eseményhez való csatlakozáshoz"
#: lib/graphql/resolvers/participant.ex:203
#, elixir-format
#: lib/graphql/resolvers/participant.ex:203
msgid "You need to be logged-in to leave an event"
msgstr "Bejelentkezve kell lennie egy esemény elhagyásához"
#: lib/graphql/resolvers/event.ex:295
#, elixir-format
#: lib/graphql/resolvers/event.ex:295
msgid "You need to be logged-in to update an event"
msgstr "Bejelentkezve kell lennie egy esemény frissítéséhez"
#: lib/graphql/resolvers/post.ex:178
#, elixir-format
#: lib/graphql/resolvers/post.ex:178
msgid "You need to be logged-in to update posts"
msgstr "Bejelentkezve kell lennie a hozzászólások frissítéséhez"
#: lib/graphql/resolvers/resource.ex:162
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "You need to be logged-in to update resources"
msgstr "Bejelentkezve kell lennie az erőforrások frissítéséhez"
#: lib/graphql/resolvers/resource.ex:218
#, elixir-format
#: lib/graphql/resolvers/resource.ex:218
msgid "You need to be logged-in to view a resource preview"
msgstr "Bejelentkezve kell lennie egy erőforrás előnézetének megtekintéséhez"
#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
#: lib/graphql/resolvers/resource.ex:125
msgid "Parent resource doesn't belong to this group"
msgstr "A szülőerőforrás nem tartozik ehhez a csoporthoz"
#: lib/mobilizon/users/user.ex:109
#, elixir-format
#: lib/mobilizon/users/user.ex:109
msgid "The chosen password is too short."
msgstr "A választott jelszó túl rövid."
#: lib/mobilizon/users/user.ex:138
#, elixir-format
#: lib/mobilizon/users/user.ex:138
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"A regisztrációs token már használatban van. Ez hibának tűnik a mi oldalunkon."
#: lib/mobilizon/users/user.ex:104
#, elixir-format
#: lib/mobilizon/users/user.ex:104
msgid "This email is already used."
msgstr "Ez az e-mail-cím már használatban van."
#: lib/graphql/error.ex:88
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Post not found"
msgstr "Nem található a hozzászólás"
#: lib/graphql/error.ex:75
#, elixir-format
#: lib/graphql/error.ex:75
msgid "Invalid arguments passed"
msgstr "Érvénytelen argumentumok lettek átadva"
#: lib/graphql/error.ex:81
#, elixir-format
#: lib/graphql/error.ex:81
msgid "Invalid credentials"
msgstr "Érvénytelen hitelesítési adatok"
#: lib/graphql/error.ex:79
#, elixir-format
#: lib/graphql/error.ex:79
msgid "Reset your password to login"
msgstr "Állítsa vissza a jelszavát a bejelentkezéshez"
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
msgid "Resource not found"
msgstr "Nem található az erőforrás"
#: lib/graphql/error.ex:93
#, elixir-format
#: lib/graphql/error.ex:93
msgid "Something went wrong"
msgstr "Valami elromlott"
#: lib/graphql/error.ex:74
#, elixir-format
#: lib/graphql/error.ex:74
msgid "Unknown Resource"
msgstr "Ismeretlen erőforrás"
#: lib/graphql/error.ex:84
#, elixir-format
#: lib/graphql/error.ex:84
msgid "You don't have permission to do this"
msgstr "Nincs jogosultsága, hogy ezt tegye"
#: lib/graphql/error.ex:76
#, elixir-format
#: lib/graphql/error.ex:76
msgid "You need to be logged in"
msgstr "Bejelentkezve kell lennie"
#: lib/graphql/resolvers/member.ex:116
#, elixir-format
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Nem tudja elfogadni ezt a meghívást ezzel a profillal."
#: lib/graphql/resolvers/member.ex:134
#, elixir-format
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Nem tudja visszautasítani ezt a meghívást ezzel a profillal."
#: lib/graphql/resolvers/media.ex:62
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
msgid "File doesn't have an allowed MIME type."
msgstr "A fájl nem rendelkezik engedélyezett MIME-típussal."
#: lib/graphql/resolvers/group.ex:167
#, elixir-format
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "A profil nem adminisztrátor ennél a csoportnál"
#: lib/graphql/resolvers/event.ex:284
#, elixir-format
#: lib/graphql/resolvers/event.ex:284
msgid "You can't edit this event."
msgstr "Nem tudja szerkeszteni ezt az eseményt."
#: lib/graphql/resolvers/event.ex:287
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "You can't attribute this event to this profile."
msgstr "Nem tudja ezt az eseményt ennek a profilnak tulajdonítani."
#: lib/graphql/resolvers/member.ex:137
#, elixir-format
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Ez a meghívás nem létezik."
#: lib/graphql/resolvers/member.ex:179
#, elixir-format
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Ez a tag már vissza lett utasítva."
#: lib/graphql/resolvers/member.ex:186
#, elixir-format
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Nincs meg a jogosultsága a tag eltávolításához."
#: lib/mobilizon/actors/actor.ex:351
#, elixir-format
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr "Ez a felhasználónév már foglalt."
#: lib/graphql/resolvers/discussion.ex:73
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Meg kell adnia vagy egy azonosítót, vagy egy keresőbarát URL-t egy "
"megbeszéléshez való hozzáféréshez"
#: lib/graphql/resolvers/event.ex:245
#, elixir-format
#: lib/graphql/resolvers/event.ex:245
msgid "Organizer profile is not owned by the user"
msgstr "A szervező profilját nem a felhasználó birtokolja"
#: lib/graphql/resolvers/participant.ex:89
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
msgid "Profile ID provided is not the anonymous profile one"
msgstr "A megadott profilazonosító nem a névtelen profil"
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#, elixir-format
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "A megadott fénykép túl nehéz"
#: lib/web/views/utils.ex:33
#, elixir-format
#: lib/web/views/utils.ex:33
msgid "Index file not found. You need to recompile the front-end."
msgstr "Indexfájl nem található. Újra kell fordítania az előtétprogramot."
#: lib/graphql/resolvers/resource.ex:122
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Hiba az erőforrás létrehozáskor"
#: lib/graphql/resolvers/user.ex:390
#, elixir-format
#: lib/graphql/resolvers/user.ex:390
msgid "Invalid activation token"
msgstr "Érvénytelen aktiválási token"
#: lib/graphql/resolvers/resource.ex:208
#, elixir-format
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr "Nem lehet lekérni az erőforrás részleteit erről az URL-ről."
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "A megadott moderátorprofilnak nincs jogosultsága ezen az eseményen"

File diff suppressed because it is too large Load Diff

View File

@ -8,15 +8,15 @@
## to merge POT files into PO files.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-02-19 10:14+0000\n"
"Last-Translator: diorama <diorama@riseup.net>\n"
"PO-Revision-Date: 2021-04-28 14:49+0000\n"
"Last-Translator: Leo Durruti <leodurruti@disroot.org>\n"
"Language-Team: Italian <https://weblate.framasoft.org/projects/mobilizon/"
"backend-errors/it/>\n"
"Language: it\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.2\n"
"X-Generator: Weblate 4.6\n"
#: lib/mobilizon/discussions/discussion.ex:67
msgid "can't be blank"
@ -94,777 +94,778 @@ msgstr "dev'essere maggiore o uguale di %{number}"
msgid "must be equal to %{number}"
msgstr "dev'essere uguale a %{number}"
#, elixir-format
#: lib/graphql/resolvers/user.ex:100
#, elixir-format
msgid "Cannot refresh the token"
msgstr "Il token non può essere aggiornato"
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "Il profilo corrente non è membro di questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "Il profilo corrente non è amministratore del gruppo selezionato"
#, elixir-format
#: lib/graphql/resolvers/user.ex:501
#, elixir-format
msgid "Error while saving user settings"
msgstr "Errore nel salvare le preferenze utente"
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Gruppo non trovato"
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Gruppo con ID %{id} non trovato"
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
#, elixir-format
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Impossibile autenticarsi: email e/o password non validi."
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Membro non trovato"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
#: lib/graphql/resolvers/user.ex:406
#, elixir-format
msgid "No profile found for the moderator user"
msgstr "Nessun profilo trovato per l'utente moderatore"
#, elixir-format
#: lib/graphql/resolvers/user.ex:193
#, elixir-format
msgid "No user to validate with this email was found"
msgstr "Nessun utente da convalidare trovato con questa email"
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Nessun utente con questa email"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "L'utente autenticato non è propietario di questo profilo"
#, elixir-format
#: lib/graphql/resolvers/user.ex:123
#, elixir-format
msgid "Registrations are not open"
msgstr "Le registrazioni non sono aperte"
#, elixir-format
#: lib/graphql/resolvers/user.ex:331
#, elixir-format
msgid "The current password is invalid"
msgstr "la password corrente non è valida"
#, elixir-format
#: lib/graphql/resolvers/user.ex:376
#, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "La nuova email sembra non valida"
#, elixir-format
#: lib/graphql/resolvers/user.ex:373
#, elixir-format
msgid "The new email must be different"
msgstr "La nuova email dev'essere diversa"
#, elixir-format
#: lib/graphql/resolvers/user.ex:334
#, elixir-format
msgid "The new password must be different"
msgstr "La nuova password deve essere diversa"
#, elixir-format
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428
#: lib/graphql/resolvers/user.ex:431
#, elixir-format
msgid "The password provided is invalid"
msgstr "La password assegnata non è valida"
#, elixir-format
#: lib/graphql/resolvers/user.ex:338
#, elixir-format
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr "la password scelta è troppo corta, deve avere almeno 6 caratteri."
#, elixir-format
#: lib/graphql/resolvers/user.ex:214
#, elixir-format
msgid "This user can't reset their password"
msgstr "Questo utente non può resettare la password"
#, elixir-format
#: lib/graphql/resolvers/user.ex:76
#, elixir-format
msgid "This user has been disabled"
msgstr "L'utente è stato disabilitato"
#, elixir-format
#: lib/graphql/resolvers/user.ex:177
#, elixir-format
msgid "Unable to validate user"
msgstr "Impossibile convalidare l'utente"
#, elixir-format
#: lib/graphql/resolvers/user.ex:409
#, elixir-format
msgid "User already disabled"
msgstr "Utente già disabilitato"
#, elixir-format
#: lib/graphql/resolvers/user.ex:476
#, elixir-format
msgid "User requested is not logged-in"
msgstr "L'utente richiesto non è loggato"
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Sei già un membro di questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Non puoi lasciare questo gruppo perchè sei l'unico amministratore"
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Non puoi unirti a questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Non è possibile elencare i gruppi a meno che non sia un moderatore."
#, elixir-format
#: lib/graphql/resolvers/user.ex:381
#, elixir-format
msgid "You need to be logged-in to change your email"
msgstr "È necessario effettuare il login per modificare la tua email"
#, elixir-format
#: lib/graphql/resolvers/user.ex:346
#, elixir-format
msgid "You need to be logged-in to change your password"
msgstr "È necessario effettuare il login per modificare la tua password"
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "È necessario effettuare il login per eliminare un gruppo"
#, elixir-format
#: lib/graphql/resolvers/user.ex:436
#, elixir-format
msgid "You need to be logged-in to delete your account"
msgstr "È necessario effettuare il login per eliminare il tuo account"
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "È necessario effettuare il login per entrare a far parte di un gruppo"
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "È necessario effettuare il login per lasciare un gruppo"
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "È necessario effettuare il login per aggiornare un gruppo"
#, elixir-format
#: lib/graphql/resolvers/user.ex:105
#, elixir-format
msgid "You need to have an existing token to get a refresh token"
msgstr ""
"È necessario disporre di un token esistente per ottenere un token di "
"aggiornamento"
#, elixir-format
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
#, elixir-format
msgid "You requested again a confirmation email too soon"
msgstr "Hai richiesto di nuovo un'e-mail di conferma troppo presto"
#, elixir-format
#: lib/graphql/resolvers/user.ex:126
#, elixir-format
msgid "Your email is not on the allowlist"
msgstr "La tua mail non è nella lista delle autorizzazioni"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
#, elixir-format
msgid "Error while performing background task"
msgstr "Errore nell'eseguire un processo in background"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:27
#, elixir-format
msgid "No profile found with this ID"
msgstr "Nessun profilo trovato con questo ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
#, elixir-format
msgid "No remote profile found with this ID"
msgstr "Nessun profilo remoto trovato con questo ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:69
#, elixir-format
msgid "Only moderators and administrators can suspend a profile"
msgstr "Solo i moderatori e gli amministratori possono sospendere un profilo"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:99
#, elixir-format
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Solo i moderatori e gli amministratori possono riattivare un profilo"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:24
#, elixir-format
msgid "Only remote profiles may be refreshed"
msgstr "È possibile aggiornare solo i profili remoti"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61
#, elixir-format
msgid "Profile already suspended"
msgstr "Profilo già sospeso"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
#, elixir-format
msgid "A valid email is required by your instance"
msgstr "Un'email valida è richiesta dalla vostra istanza"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
#, elixir-format
msgid "Anonymous participation is not enabled"
msgstr "La partecipazione anonima non è abilitata"
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Impossibile rimuovere l'ultimo amministratore di un gruppo"
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Impossibile rimuovere l'ultima identità di un utente"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:108
#, elixir-format
msgid "Comment is already deleted"
msgstr "Commento già cancellato"
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
#, elixir-format
msgid "Discussion not found"
msgstr "Discussione non trovata"
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
#, elixir-format
msgid "Error while saving report"
msgstr "Errore nel salvare la segnalazione"
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
#, elixir-format
msgid "Error while updating report"
msgstr "Errore durante l'aggiornamento del rapporto"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
#, elixir-format
msgid "Event id not found"
msgstr "ID evento non trovato"
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281
#: lib/graphql/resolvers/event.ex:325
#, elixir-format
msgid "Event not found"
msgstr "Evento non trovato"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
#, elixir-format
msgid "Event with this ID %{id} doesn't exist"
msgstr "L'evento con questo ID %{id} non esiste"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:99
#, elixir-format
msgid "Internal Error"
msgstr "Errore Interno"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Nessuna discussione con l'ID %{id}"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
#, elixir-format
msgid "No profile found for user"
msgstr "Nessuno profilo trovato per l'utente"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Nessun token di rifornimento corrispondente"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:237
#, elixir-format
msgid "Participant already has role %{role}"
msgstr "Il partecipante ha già il ruolo %{role}"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
#, elixir-format
msgid "Participant not found"
msgstr "Partecipante non trovato"
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "La persona con l'ID %{id} non è stata trovata"
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "La persona con il nome utente %{username} non è stata trovata"
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
#, elixir-format
msgid "Post ID is not a valid ID"
msgstr "L'ID del post non è un ID valido"
#, elixir-format
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
#, elixir-format
msgid "Post doesn't exist"
msgstr "Il post non esiste"
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
#, elixir-format
msgid "Profile invited doesn't exist"
msgstr "Il profilo invitato non esiste"
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
#, elixir-format
msgid "Profile is already a member of this group"
msgstr "Il profilo è già un membro diquesto gruppo"
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
#, elixir-format
msgid "Profile is not member of group"
msgstr "Il profilo non è membro del gruppo"
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Profilo non trovato"
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
"Il profilo del moderatore fornito non dispone dell'autorizzazione per questo "
"evento"
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
#, elixir-format
msgid "Report not found"
msgstr "Segnalazione non trovata"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
#, elixir-format
msgid "Resource doesn't exist"
msgstr "La risorsa non esiste"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
#, elixir-format
msgid "The event has already reached its maximum capacity"
msgstr "L'evento ha già raggiunto la sua massima capacità"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:260
#, elixir-format
msgid "This token is invalid"
msgstr "Questo token non è valido"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
#, elixir-format
msgid "Todo doesn't exist"
msgstr "L'elemento to-do non esiste"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
#, elixir-format
msgid "Todo list doesn't exist"
msgstr "la lista non esiste"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Il token non esiste"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Il token non è un UUID valido"
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Utente non trovato"
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Hai già un profilo per questo utente"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
#, elixir-format
msgid "You are already a participant of this event"
msgstr "Se già un partecipante di questo evento"
#, elixir-format
#: lib/graphql/resolvers/member.ex:86
#, elixir-format
msgid "You are not a member of this group"
msgstr "Non sei un membro di questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Non sei un moderatore o amministratore di questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:54
#, elixir-format
msgid "You are not allowed to create a comment if not connected"
msgstr "Non è consentito creare un commento se non si è collegati"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
msgid "You are not allowed to create a feed token if not connected"
msgstr "Non puoi creare un token di rifornimento senza connessione"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:113
#, elixir-format
msgid "You are not allowed to delete a comment if not connected"
msgstr "Non è consentito eliminare un commento se non si è collegati"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Non puoi eliminare un token di rifornimento senza connettersi"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:76
#, elixir-format
msgid "You are not allowed to update a comment if not connected"
msgstr "Non è consentito aggiornare un commento se non si è collegati"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Non puoi lasciare l'evento perchè sei l'unico partecipante creatore di eventi"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Non puoi impostare te stesso per un ruolo di membro inferiore per questo "
"gruppo perché sei l'unico amministratore"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:104
#, elixir-format
msgid "You cannot delete this comment"
msgstr "Non puoi eliminare questo commento"
#, elixir-format
#: lib/graphql/resolvers/event.ex:321
#, elixir-format
msgid "You cannot delete this event"
msgstr "Non puoi eliminare questo evento"
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
#, elixir-format
msgid "You cannot invite to this group"
msgstr "Non puoi invitare in questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Non hai il permesso di cancellare questo token"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Devi essere connesso e un moderatore per elencare i log delle azioni"
#, elixir-format
#: lib/graphql/resolvers/report.ex:26
#, elixir-format
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Devi essere connesso e un moderatore per elencare i rapporti"
#, elixir-format
#: lib/graphql/resolvers/report.ex:101
#, elixir-format
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Devi essere connesso e un moderatore per aggiornare un rapporto"
#, elixir-format
#: lib/graphql/resolvers/report.ex:41
#, elixir-format
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Devi essere connesso e un moderatore per visualizzare un rapporto"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Devi essere connesso e un moderatore per accedere alle opzioni "
"dell'amministratore"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Devi essere connesso e un moderatore per accedere alle statistiche del "
"dashboard"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Devi essere connesso e un moderatore per salvare le impostazioni "
"dell'amministratore"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Devi essere connesso per accedere alle discussioni"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:94
#, elixir-format
msgid "You need to be logged-in to access resources"
msgstr "Devi essere connesso per accedere alle risorse"
#, elixir-format
#: lib/graphql/resolvers/event.ex:256
#, elixir-format
msgid "You need to be logged-in to create events"
msgstr "Devi essere connesso per creare eventi"
#, elixir-format
#: lib/graphql/resolvers/post.ex:140
#, elixir-format
msgid "You need to be logged-in to create posts"
msgstr "Devi essere connesso per creare dei post"
#, elixir-format
#: lib/graphql/resolvers/report.ex:74
#, elixir-format
msgid "You need to be logged-in to create reports"
msgstr "Devi essere connesso per creare rapporti"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:133
#, elixir-format
msgid "You need to be logged-in to create resources"
msgstr "Devi essere connesso per creare risorse"
#, elixir-format
#: lib/graphql/resolvers/event.ex:330
#, elixir-format
msgid "You need to be logged-in to delete an event"
msgstr "Devi essere connesso per eliminare un evento"
#, elixir-format
#: lib/graphql/resolvers/post.ex:211
#, elixir-format
msgid "You need to be logged-in to delete posts"
msgstr "Devi essere connesso per eliminare dei post"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:191
#, elixir-format
msgid "You need to be logged-in to delete resources"
msgstr "Devi essere connesso per eliminare risorse"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:104
#, elixir-format
msgid "You need to be logged-in to join an event"
msgstr "Devi essere connesso per partecipare a un evento"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:203
#, elixir-format
msgid "You need to be logged-in to leave an event"
msgstr "Devi essere connesso per lasciare un evento"
#, elixir-format
#: lib/graphql/resolvers/event.ex:295
#, elixir-format
msgid "You need to be logged-in to update an event"
msgstr "Devi essere connesso per aggiornare un evento"
#, elixir-format
#: lib/graphql/resolvers/post.ex:178
#, elixir-format
msgid "You need to be logged-in to update posts"
msgstr "Devi essere connesso per aggiornare dei post"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
#, elixir-format
msgid "You need to be logged-in to update resources"
msgstr "Devi essere connesso per aggiornare le risorse"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:218
#, elixir-format
msgid "You need to be logged-in to view a resource preview"
msgstr "Devi essere connesso per visualizzare l'anteprima di una risorsa"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
msgid "Parent resource doesn't belong to this group"
msgstr "La risorsa principale non appartiene a questo gruppo"
#, elixir-format
#: lib/mobilizon/users/user.ex:109
#, elixir-format
msgid "The chosen password is too short."
msgstr "La password scelta è troppo corta."
#, elixir-format
#: lib/mobilizon/users/user.ex:138
#, elixir-format
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Il token di registrazione è già in uso, questo sembra un problema dalla "
"nostra parte."
#, elixir-format
#: lib/mobilizon/users/user.ex:104
#, elixir-format
msgid "This email is already used."
msgstr "Questa email è già in uso."
#, elixir-format
#: lib/graphql/error.ex:88
#, elixir-format
msgid "Post not found"
msgstr "Post non trovato"
#, elixir-format
#: lib/graphql/error.ex:75
#, elixir-format
msgid "Invalid arguments passed"
msgstr "Sono stati trasmessi argomenti non validi"
#, elixir-format
#: lib/graphql/error.ex:81
#, elixir-format
msgid "Invalid credentials"
msgstr "Credenziali non valide"
#, elixir-format
#: lib/graphql/error.ex:79
#, elixir-format
msgid "Reset your password to login"
msgstr "Reimposta la tua password per connetterti"
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
#, elixir-format
msgid "Resource not found"
msgstr "Segnalazione non trovata"
#, elixir-format
#: lib/graphql/error.ex:93
#, elixir-format
msgid "Something went wrong"
msgstr "Qualcosa è andato storto"
#, elixir-format
#: lib/graphql/error.ex:74
#, elixir-format
msgid "Unknown Resource"
msgstr "Risorsa sconosciuta"
#, elixir-format
#: lib/graphql/error.ex:84
#, elixir-format
msgid "You don't have permission to do this"
msgstr "Non hai il permesso di farlo"
#, elixir-format
#: lib/graphql/error.ex:76
#, elixir-format
msgid "You need to be logged in"
msgstr "Devi essere connesso"
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Non puoi accettare l'invito con questo profilo."
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Non puoi rifiutare l'invito con questo profilo."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#, elixir-format
msgid "File doesn't have an allowed MIME type."
msgstr "Il file non ha un tipo MIME consentito."
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "Il profilo non è amministratore del gruppo"
#, elixir-format
#: lib/graphql/resolvers/event.ex:284
#, elixir-format
msgid "You can't edit this event."
msgstr "Non puoi modificare questo evento."
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
#, elixir-format
msgid "You can't attribute this event to this profile."
msgstr "Non puo iattribuire questo evento a questo profilo."
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Questo invito non esiste."
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Questo memebro è già stato rifiutato."
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Non hai il diritto di rimuovere questo membro."
#, elixir-format
#: lib/mobilizon/actors/actor.ex:351
#, elixir-format
msgid "This username is already taken."
msgstr "Questo nome utente è già in uso."
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Devi fornire un ID o la stringa utente (ad es. <em>utente@mobilizon.sm</em>) "
"per accedere ad una discussione"
#, elixir-format
#: lib/graphql/resolvers/event.ex:245
#, elixir-format
msgid "Organizer profile is not owned by the user"
msgstr "Il profilo dell'organizzatore non è di proprietà dell'utente"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
#, elixir-format
msgid "Profile ID provided is not the anonymous profile one"
msgstr "L'ID profilo fornito non è quello del profilo anonimo"
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "L'immagine inserita è troppo pesante"
#, elixir-format
#: lib/web/views/utils.ex:33
#, elixir-format
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
msgstr "Il file di indice non è stato trovato. Devi ricompilare il front-end."
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
#, elixir-format
msgid "Error while creating resource"
msgstr "Errore nel salvare la segnalazione"
msgstr "Errore durante la creazione della risorsa"
#, elixir-format
#: lib/graphql/resolvers/user.ex:390
msgid "Invalid activation token"
msgstr ""
#, elixir-format
msgid "Invalid activation token"
msgstr "Token di attivazione non valido"
#: lib/graphql/resolvers/resource.ex:208
#, elixir-format
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
"Il profilo del moderatore fornito non dispone dell'autorizzazione per questo "
"evento"

View File

@ -832,8 +832,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1356,21 +1356,22 @@ msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1393,3 +1394,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -87,12 +87,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -102,13 +102,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -118,7 +118,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -134,16 +134,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -209,22 +209,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -239,7 +239,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -249,17 +249,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -324,12 +324,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -376,7 +376,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -386,7 +386,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -403,12 +403,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -442,15 +442,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -483,22 +478,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -513,7 +508,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -533,7 +528,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -549,7 +544,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -569,12 +564,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -594,22 +589,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -749,12 +744,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -764,7 +759,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -779,17 +774,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -799,7 +794,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -814,8 +809,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -824,7 +819,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -838,3 +833,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

View File

@ -854,8 +854,8 @@ msgid "Hi there! Just a quick note to confirm that the email address linked to y
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.eex:41
#: lib/web/templates/email/email_changed_old.html.eex:65 lib/web/templates/email/email_changed_old.text.eex:5
#: lib/web/templates/email/email_changed_old.html.eex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
@ -1381,21 +1381,22 @@ msgstr "Dit is een demosite om de bètaversie van Mobilizon te testen."
#, elixir-format
#: lib/service/metadata/actor.ex:53 lib/service/metadata/actor.ex:60
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
msgid "%{name}'s feed"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:77
#: lib/service/export/feed.ex:120
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:72
#: lib/service/export/feed.ex:115
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:203
#: lib/service/export/feed.ex:220
msgid "Feed for %{email} on %{instance}"
msgstr ""
@ -1418,3 +1419,8 @@ msgstr ""
#: lib/web/templates/error/500_page.html.eex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""

View File

@ -93,12 +93,12 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:198
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:202
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr ""
@ -108,13 +108,13 @@ msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:66
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr ""
@ -124,7 +124,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:258
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr ""
@ -140,16 +140,16 @@ msgid "No user to validate with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr ""
@ -215,22 +215,22 @@ msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:232
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:265
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:229
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:94
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr ""
@ -245,7 +245,7 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:207
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr ""
@ -255,17 +255,17 @@ msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:270
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:172
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr ""
@ -330,12 +330,12 @@ msgid "Anonymous participation is not enabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:195
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:192
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr ""
@ -382,7 +382,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:201
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr ""
@ -392,7 +392,7 @@ msgid "No profile found for user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:63
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr ""
@ -409,12 +409,12 @@ msgid "Participant not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:29
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:51
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr ""
@ -448,15 +448,10 @@ msgid "Profile is not member of group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided moderator profile doesn't have permission on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
@ -489,22 +484,22 @@ msgid "Todo list doesn't exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:69
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:66
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:256
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr ""
@ -519,7 +514,7 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:151
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -539,7 +534,7 @@ msgid "You are not allowed to delete a comment if not connected"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:78
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr ""
@ -555,7 +550,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -575,12 +570,12 @@ msgid "You cannot invite to this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:72
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:52
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -600,22 +595,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:236
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:221
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:260
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:76
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr ""
@ -755,12 +750,12 @@ msgid "You need to be logged in"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:134
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr ""
@ -770,7 +765,7 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:167
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr ""
@ -785,17 +780,17 @@ msgid "You can't attribute this event to this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:179
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:186
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr ""
@ -805,7 +800,7 @@ msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:73
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
@ -820,8 +815,8 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr ""
@ -830,7 +825,7 @@ msgstr ""
msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr ""
@ -844,3 +839,8 @@ msgstr ""
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -110,775 +110,775 @@ msgstr "må vera større enn eller lik %{number}"
msgid "must be equal to %{number}"
msgstr "må vera lik %{number}"
#: lib/graphql/resolvers/user.ex:100
#, elixir-format
#: lib/graphql/resolvers/user.ex:100
msgid "Cannot refresh the token"
msgstr "Kan ikkje fornya teiknet"
#: lib/graphql/resolvers/group.ex:198
#, elixir-format
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "Denne brukaren er ikkje medlem av gruppa"
#: lib/graphql/resolvers/group.ex:202
#, elixir-format
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "Denne brukaren er ikkje styrar av gruppa"
#: lib/graphql/resolvers/user.ex:501
#, elixir-format
#: lib/graphql/resolvers/user.ex:501
msgid "Error while saving user settings"
msgstr "Greidde ikkje lagra brukarinnstillingane"
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:195
#: lib/graphql/resolvers/group.ex:226 lib/graphql/resolvers/group.ex:261 lib/graphql/resolvers/member.ex:80
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
msgid "Group not found"
msgstr "Fann ikkje gruppa"
#: lib/graphql/resolvers/group.ex:66
#, elixir-format
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Fann ikkje gruppa med ID %{id}"
#: lib/graphql/resolvers/user.ex:80
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Greier ikkje å logga inn. Epostadressa eller passordet ditt er feil."
#: lib/graphql/resolvers/group.ex:258
#, elixir-format
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Fann ikkje medlemen"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
#: lib/graphql/resolvers/user.ex:406
#, elixir-format
msgid "No profile found for the moderator user"
msgstr "Fann ingen profil for moderator-brukaren"
#: lib/graphql/resolvers/user.ex:193
#, elixir-format
#: lib/graphql/resolvers/user.ex:193
msgid "No user to validate with this email was found"
msgstr "Fann ingen brukar med denne eposten å godkjenna"
#: lib/graphql/resolvers/person.ex:253 lib/graphql/resolvers/user.ex:218
#, elixir-format
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:218
msgid "No user with this email was found"
msgstr "Fann ingen brukar med denne eposten"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:164 lib/graphql/resolvers/person.ex:198
#: lib/graphql/resolvers/person.ex:277 lib/graphql/resolvers/person.ex:306 lib/graphql/resolvers/person.ex:330
#: lib/graphql/resolvers/person.ex:342
#, elixir-format
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:278 lib/graphql/resolvers/person.ex:307 lib/graphql/resolvers/person.ex:334
#: lib/graphql/resolvers/person.ex:346
msgid "Profile is not owned by authenticated user"
msgstr "Ingen godkjent brukar eig denne profilen"
#: lib/graphql/resolvers/user.ex:123
#, elixir-format
#: lib/graphql/resolvers/user.ex:123
msgid "Registrations are not open"
msgstr "Det er ikkje opna for å registrera seg"
#: lib/graphql/resolvers/user.ex:331
#, elixir-format
#: lib/graphql/resolvers/user.ex:331
msgid "The current password is invalid"
msgstr "Dette passordet er ugyldig"
#: lib/graphql/resolvers/user.ex:376
#, elixir-format
#: lib/graphql/resolvers/user.ex:376
msgid "The new email doesn't seem to be valid"
msgstr "Den nye epostadressa ser ut til å vera feil"
#: lib/graphql/resolvers/user.ex:373
#, elixir-format
#: lib/graphql/resolvers/user.ex:373
msgid "The new email must be different"
msgstr "Den nye epostadressa må vera annleis"
#: lib/graphql/resolvers/user.ex:334
#, elixir-format
#: lib/graphql/resolvers/user.ex:334
msgid "The new password must be different"
msgstr "Det nye passordet må vera annleis"
#, elixir-format
#: lib/graphql/resolvers/user.ex:370 lib/graphql/resolvers/user.ex:428
#: lib/graphql/resolvers/user.ex:431
#, elixir-format
msgid "The password provided is invalid"
msgstr "Dette passordet er ugyldig"
#: lib/graphql/resolvers/user.ex:338
#, elixir-format
#: lib/graphql/resolvers/user.ex:338
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr "Dette passordet er for kort. Passord må ha minst 6 teikn."
#: lib/graphql/resolvers/user.ex:214
#, elixir-format
#: lib/graphql/resolvers/user.ex:214
msgid "This user can't reset their password"
msgstr "Denne brukaren kan ikkje nullstilla passordet sitt"
#: lib/graphql/resolvers/user.ex:76
#, elixir-format
#: lib/graphql/resolvers/user.ex:76
msgid "This user has been disabled"
msgstr "Denne brukaren er avskrudd"
#: lib/graphql/resolvers/user.ex:177
#, elixir-format
#: lib/graphql/resolvers/user.ex:177
msgid "Unable to validate user"
msgstr "Greier ikkje godkjenna brukaren"
#: lib/graphql/resolvers/user.ex:409
#, elixir-format
#: lib/graphql/resolvers/user.ex:409
msgid "User already disabled"
msgstr "Brukaren er allereie inaktiv"
#: lib/graphql/resolvers/user.ex:476
#, elixir-format
#: lib/graphql/resolvers/user.ex:476
msgid "User requested is not logged-in"
msgstr "Den førespurte brukaren er ikkje innlogga"
#: lib/graphql/resolvers/group.ex:232
#, elixir-format
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Du er allereie medlem av denne gruppa"
#: lib/graphql/resolvers/group.ex:265
#, elixir-format
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Du kan ikkje forlata denne gruppa, fordi du er den einaste styraren"
#: lib/graphql/resolvers/group.ex:229
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Du kan ikkje bli med i denne gruppa"
#: lib/graphql/resolvers/group.ex:94
#, elixir-format
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Du kan ikkje lista opp grupper med mindre du er moderator."
#: lib/graphql/resolvers/user.ex:381
#, elixir-format
#: lib/graphql/resolvers/user.ex:381
msgid "You need to be logged-in to change your email"
msgstr "Du må vera innlogga for å endra epostadressa di"
#: lib/graphql/resolvers/user.ex:346
#, elixir-format
#: lib/graphql/resolvers/user.ex:346
msgid "You need to be logged-in to change your password"
msgstr "Du må vera innlogga for å endra passordet ditt"
#: lib/graphql/resolvers/group.ex:207
#, elixir-format
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Du må vera innlogga for å sletta ei gruppe"
#: lib/graphql/resolvers/user.ex:436
#, elixir-format
#: lib/graphql/resolvers/user.ex:436
msgid "You need to be logged-in to delete your account"
msgstr "Du må vera innlogga for å sletta kontoen din"
#: lib/graphql/resolvers/group.ex:237
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Du må vera innlogga for å bli med i ei gruppe"
#: lib/graphql/resolvers/group.ex:270
#, elixir-format
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Du må vera innlogga for å forlata ei gruppe"
#: lib/graphql/resolvers/group.ex:172
#, elixir-format
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Du må vera innlogga for å oppdatera ei gruppe"
#: lib/graphql/resolvers/user.ex:105
#, elixir-format
#: lib/graphql/resolvers/user.ex:105
msgid "You need to have an existing token to get a refresh token"
msgstr "Du treng eit eksisterande teikn for å få eit fornyingsteikn"
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
#, elixir-format
#: lib/graphql/resolvers/user.ex:196 lib/graphql/resolvers/user.ex:221
msgid "You requested again a confirmation email too soon"
msgstr "Du ba om ny stadfestingsepost for snøgt"
#: lib/graphql/resolvers/user.ex:126
#, elixir-format
#: lib/graphql/resolvers/user.ex:126
msgid "Your email is not on the allowlist"
msgstr "Epostadressa di er ikkje på lista over godkjende adresser"
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
msgid "Error while performing background task"
msgstr "Greidde ikkje utføra ei bakgrunnsoppgåve"
#: lib/graphql/resolvers/actor.ex:27
#, elixir-format
#: lib/graphql/resolvers/actor.ex:27
msgid "No profile found with this ID"
msgstr "Fann ingen profil med denne ID-en"
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
#, elixir-format
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
msgid "No remote profile found with this ID"
msgstr "Fann ingen fjern profil med denne ID-en"
#: lib/graphql/resolvers/actor.ex:69
#, elixir-format
#: lib/graphql/resolvers/actor.ex:69
msgid "Only moderators and administrators can suspend a profile"
msgstr "Berre moderatorar og styrarar kan sperra ein profil"
#: lib/graphql/resolvers/actor.ex:99
#, elixir-format
#: lib/graphql/resolvers/actor.ex:99
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Berre moderatorar og styrarar kan oppheva sperring av profilar"
#: lib/graphql/resolvers/actor.ex:24
#, elixir-format
#: lib/graphql/resolvers/actor.ex:24
msgid "Only remote profiles may be refreshed"
msgstr "Du kan berre lasta fjerne profilar på nytt"
#: lib/graphql/resolvers/actor.ex:61
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61
msgid "Profile already suspended"
msgstr "Profilen er allereie sperra"
#: lib/graphql/resolvers/participant.ex:92
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
msgid "A valid email is required by your instance"
msgstr "Nettstaden din krev ei gyldig epostadresse"
#: lib/graphql/resolvers/participant.ex:86
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
msgid "Anonymous participation is not enabled"
msgstr "Det er ikkje høve til å vera med anonymt"
#: lib/graphql/resolvers/person.ex:195
#, elixir-format
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Kan ikkje fjerna den siste styraren i gruppa"
#: lib/graphql/resolvers/person.ex:192
#, elixir-format
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Kan ikkje fjerna den siste identiteten til ein brukar"
#: lib/graphql/resolvers/comment.ex:108
#, elixir-format
#: lib/graphql/resolvers/comment.ex:108
msgid "Comment is already deleted"
msgstr "Kommentaren er allereie sletta"
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
msgid "Discussion not found"
msgstr "Fann ikkje ordskiftet"
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
msgid "Error while saving report"
msgstr "Greidde ikkje lagra rapporten"
#: lib/graphql/resolvers/report.ex:96
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
msgid "Error while updating report"
msgstr "Greidde ikkje oppdatera rapporten"
#: lib/graphql/resolvers/participant.ex:127
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
msgid "Event id not found"
msgstr "Fann ikkje ID-en til hendinga"
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:281
#: lib/graphql/resolvers/event.ex:325
#, elixir-format
msgid "Event not found"
msgstr "Fann ikkje hendinga"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
#, elixir-format
msgid "Event with this ID %{id} doesn't exist"
msgstr "Det finst inga hending med ID-en %{id}"
#: lib/graphql/resolvers/participant.ex:99
#, elixir-format
#: lib/graphql/resolvers/participant.ex:99
msgid "Internal Error"
msgstr "Intern feil"
#: lib/graphql/resolvers/discussion.ex:201
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Ikkje noko ordskifte med ID-en %{id}"
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
msgid "No profile found for user"
msgstr "Fann ingen profil for brukaren"
#: lib/graphql/resolvers/feed_token.ex:63
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Det finst ikkje noko slikt teikn for kjelda"
#: lib/graphql/resolvers/participant.ex:237
#, elixir-format
#: lib/graphql/resolvers/participant.ex:237
msgid "Participant already has role %{role}"
msgstr "Deltakaren har rolla %{role} allereie"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
#, elixir-format
msgid "Participant not found"
msgstr "Fann ikkje deltakaren"
#: lib/graphql/resolvers/person.ex:29
#, elixir-format
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Fann ingen person med ID-en %{id}"
#: lib/graphql/resolvers/person.ex:51
#, elixir-format
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Fann ingen person med brukarnamnet %{username}"
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
msgid "Post ID is not a valid ID"
msgstr "Innleggs-IDen er ugyldig"
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
#, elixir-format
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
msgid "Post doesn't exist"
msgstr "Innlegget finst ikkje"
#: lib/graphql/resolvers/member.ex:83
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
msgid "Profile invited doesn't exist"
msgstr "Den inviterte profilen finst ikkje"
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
msgid "Profile is already a member of this group"
msgstr "Profilen er allereie medlem i denne gruppa"
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
#, elixir-format
msgid "Profile is not member of group"
msgstr "Profilen er ikkje medlem i gruppa"
#: lib/graphql/resolvers/person.ex:161 lib/graphql/resolvers/person.ex:189
#, elixir-format
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Fann ikkje profilen"
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
#, elixir-format
msgid "Provided moderator profile doesn't have permission on this event"
msgstr "Moderatorprofilen har ikkje tilgang til denne hendinga"
#: lib/graphql/resolvers/report.ex:36
#, elixir-format
msgid "Report not found"
msgstr "Fann ikkje rapporten"
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
msgid "Resource doesn't exist"
msgstr "Ressursen finst ikkje"
#: lib/graphql/resolvers/participant.ex:120
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
msgid "The event has already reached its maximum capacity"
msgstr "Hendinga er fullteikna"
#: lib/graphql/resolvers/participant.ex:260
#, elixir-format
#: lib/graphql/resolvers/participant.ex:260
msgid "This token is invalid"
msgstr "Teiknet er ugyldig"
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
msgid "Todo doesn't exist"
msgstr "Gjeremålet finst ikkje"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
#, elixir-format
msgid "Todo list doesn't exist"
msgstr "Gjeremålslista finst ikkje"
#: lib/graphql/resolvers/feed_token.ex:69
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Teiknet finst ikkje"
#: lib/graphql/resolvers/feed_token.ex:66
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Teiknet er ikkje ein gyldig UUID"
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:358
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:362
msgid "User not found"
msgstr "Fann ikkje brukaren"
#: lib/graphql/resolvers/person.ex:256
#, elixir-format
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Du har allereie ein profil for denne brukaren"
#: lib/graphql/resolvers/participant.ex:130
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
msgid "You are already a participant of this event"
msgstr "Du er allereie deltakar på denne hendinga"
#: lib/graphql/resolvers/member.ex:86
#, elixir-format
#: lib/graphql/resolvers/member.ex:86
msgid "You are not a member of this group"
msgstr "Du er ikkje medlem i denne gruppa"
#: lib/graphql/resolvers/member.ex:151
#, elixir-format
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Du er ikkje styrar eller administrator for denne gruppa"
#: lib/graphql/resolvers/comment.ex:54
#, elixir-format
#: lib/graphql/resolvers/comment.ex:54
msgid "You are not allowed to create a comment if not connected"
msgstr "Du har ikkje løyve til å skriva kommentarar viss du ikkje er kopla til"
#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Du har ikkje løyve til å laga eit straumteikn når du ikkje er kopla til"
#: lib/graphql/resolvers/comment.ex:113
#, elixir-format
#: lib/graphql/resolvers/comment.ex:113
msgid "You are not allowed to delete a comment if not connected"
msgstr "Du har ikkje løyve til å sletta ein kommentar når du ikkje er kopla til"
#: lib/graphql/resolvers/feed_token.ex:78
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Du har ikkje løyve til å sletta straumteikn når du ikkje er kopla til"
#: lib/graphql/resolvers/comment.ex:76
#, elixir-format
#: lib/graphql/resolvers/comment.ex:76
msgid "You are not allowed to update a comment if not connected"
msgstr ""
"Du har ikkje løyve til å oppdatera kommentarar når du ikkje er kopla til"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Du kan ikkje forlata hendinga, fordi du er den einaste deltakaren som har "
"oppretta hendinga"
#: lib/graphql/resolvers/member.ex:155
#, elixir-format
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Du kan ikkje gje deg sjølv ei deltakarrolle i denne gruppa, fordi du er den "
"einaste administratoren"
#: lib/graphql/resolvers/comment.ex:104
#, elixir-format
#: lib/graphql/resolvers/comment.ex:104
msgid "You cannot delete this comment"
msgstr "Du kan ikkje sletta denne kommentaren"
#: lib/graphql/resolvers/event.ex:321
#, elixir-format
#: lib/graphql/resolvers/event.ex:321
msgid "You cannot delete this event"
msgstr "Du kan ikkje sletta denne hendinga"
#: lib/graphql/resolvers/member.ex:89
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
msgid "You cannot invite to this group"
msgstr "Du kan ikkje invitera til denne gruppa"
#: lib/graphql/resolvers/feed_token.ex:72
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Du har ikkje løyve til å sletta dette teiknet"
#: lib/graphql/resolvers/admin.ex:52
#, elixir-format
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Du må vera innlogga og ha ei moderatorrolle for å lista opp hendingsloggar"
#: lib/graphql/resolvers/report.ex:26
#, elixir-format
#: lib/graphql/resolvers/report.ex:26
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Du må vera innlogga og ha ei moderatorrolle for å lista opp rapportar"
#: lib/graphql/resolvers/report.ex:101
#, elixir-format
#: lib/graphql/resolvers/report.ex:101
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Du må vera innlogga og ha ei moderatorrolle for å oppdatera ein rapport"
#: lib/graphql/resolvers/report.ex:41
#, elixir-format
#: lib/graphql/resolvers/report.ex:41
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Du må vera innlogga og ha ei moderatorrolle for å lesa rapportar"
#: lib/graphql/resolvers/admin.ex:236
#, elixir-format
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Du må vera innlogga og ha ei administratorrolle for å sjå admin-"
"innstillingane"
#: lib/graphql/resolvers/admin.ex:221
#, elixir-format
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Du må vera innlogga og ha ei administratorrolle for å sjå statistikk på "
"styringspanelet"
#: lib/graphql/resolvers/admin.ex:260
#, elixir-format
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Du må vera innlogga og ha ei administratorrolle for å lagra admin-"
"innstillingar"
#: lib/graphql/resolvers/discussion.ex:76
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Du må vera innlogga for å sjå ordskifte"
#: lib/graphql/resolvers/resource.ex:94
#, elixir-format
#: lib/graphql/resolvers/resource.ex:94
msgid "You need to be logged-in to access resources"
msgstr "Du må vera innlogga for å sjå ressursane"
#: lib/graphql/resolvers/event.ex:256
#, elixir-format
#: lib/graphql/resolvers/event.ex:256
msgid "You need to be logged-in to create events"
msgstr "Du må vera innlogga for å laga hendingar"
#: lib/graphql/resolvers/post.ex:140
#, elixir-format
#: lib/graphql/resolvers/post.ex:140
msgid "You need to be logged-in to create posts"
msgstr "Du må vera innlogga for å skriva innlegg"
#: lib/graphql/resolvers/report.ex:74
#, elixir-format
#: lib/graphql/resolvers/report.ex:74
msgid "You need to be logged-in to create reports"
msgstr "Du må vera innlogga for å rapportera"
#: lib/graphql/resolvers/resource.ex:133
#, elixir-format
#: lib/graphql/resolvers/resource.ex:133
msgid "You need to be logged-in to create resources"
msgstr "Du må vera innlogga for å laga ressursar"
#: lib/graphql/resolvers/event.ex:330
#, elixir-format
#: lib/graphql/resolvers/event.ex:330
msgid "You need to be logged-in to delete an event"
msgstr "Du må vera innlogga for å sletta ei hending"
#: lib/graphql/resolvers/post.ex:211
#, elixir-format
#: lib/graphql/resolvers/post.ex:211
msgid "You need to be logged-in to delete posts"
msgstr "Du må vera innlogga for å sletta innlegg"
#: lib/graphql/resolvers/resource.ex:191
#, elixir-format
#: lib/graphql/resolvers/resource.ex:191
msgid "You need to be logged-in to delete resources"
msgstr "Du må vera innlogga for å sletta ressursar"
#: lib/graphql/resolvers/participant.ex:104
#, elixir-format
#: lib/graphql/resolvers/participant.ex:104
msgid "You need to be logged-in to join an event"
msgstr "Du må vera innlogga for å bli med på ei hending"
#: lib/graphql/resolvers/participant.ex:203
#, elixir-format
#: lib/graphql/resolvers/participant.ex:203
msgid "You need to be logged-in to leave an event"
msgstr "Du må vera innlogga for å melda deg av ei hending"
#: lib/graphql/resolvers/event.ex:295
#, elixir-format
#: lib/graphql/resolvers/event.ex:295
msgid "You need to be logged-in to update an event"
msgstr "Du må vera innlogga for å oppdatera hendingar"
#: lib/graphql/resolvers/post.ex:178
#, elixir-format
#: lib/graphql/resolvers/post.ex:178
msgid "You need to be logged-in to update posts"
msgstr "Du må vera innlogga for å oppdatera innlegg"
#: lib/graphql/resolvers/resource.ex:162
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "You need to be logged-in to update resources"
msgstr "Du må vera innlogga for å oppdatera ressursar"
#: lib/graphql/resolvers/resource.ex:218
#, elixir-format
#: lib/graphql/resolvers/resource.ex:218
msgid "You need to be logged-in to view a resource preview"
msgstr "Du må vera innlogga for å førehandsvisa ressursar"
#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
#: lib/graphql/resolvers/resource.ex:125
msgid "Parent resource doesn't belong to this group"
msgstr "Opphavsressursen høyrer ikkje til denne gruppa"
#: lib/mobilizon/users/user.ex:109
#, elixir-format
#: lib/mobilizon/users/user.ex:109
msgid "The chosen password is too short."
msgstr "Dette passordet er for kort."
#: lib/mobilizon/users/user.ex:138
#, elixir-format
#: lib/mobilizon/users/user.ex:138
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Registreringsteiknet er allereie i bruk, dette ser ut som ein feil frå vår "
"side."
#: lib/mobilizon/users/user.ex:104
#, elixir-format
#: lib/mobilizon/users/user.ex:104
msgid "This email is already used."
msgstr "Denne eposten er allereie i bruk."
#: lib/graphql/error.ex:88
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Post not found"
msgstr "Fann ikkje innlegget"
#: lib/graphql/error.ex:75
#, elixir-format
#: lib/graphql/error.ex:75
msgid "Invalid arguments passed"
msgstr "Ugyldige argument"
#: lib/graphql/error.ex:81
#, elixir-format
#: lib/graphql/error.ex:81
msgid "Invalid credentials"
msgstr "Ugyldig innlogging"
#: lib/graphql/error.ex:79
#, elixir-format
#: lib/graphql/error.ex:79
msgid "Reset your password to login"
msgstr "Nullstill passordet for å logga inn"
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
msgid "Resource not found"
msgstr "Fann ikkje ressursen"
#: lib/graphql/error.ex:93
#, elixir-format
#: lib/graphql/error.ex:93
msgid "Something went wrong"
msgstr "Noko gjekk gale"
#: lib/graphql/error.ex:74
#, elixir-format
#: lib/graphql/error.ex:74
msgid "Unknown Resource"
msgstr "Ukjend ressurs"
#: lib/graphql/error.ex:84
#, elixir-format
#: lib/graphql/error.ex:84
msgid "You don't have permission to do this"
msgstr "Du har ikkje løyve til å gjera detet"
#: lib/graphql/error.ex:76
#, elixir-format
#: lib/graphql/error.ex:76
msgid "You need to be logged in"
msgstr "Du må vera innlogga"
#: lib/graphql/resolvers/member.ex:116
#, elixir-format
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Du kan ikkje ta imot invitasjonar med denne profilen."
#: lib/graphql/resolvers/member.ex:134
#, elixir-format
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Du kan ikkje avslå invitasjonen med denne profilen."
#: lib/graphql/resolvers/media.ex:62
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
msgid "File doesn't have an allowed MIME type."
msgstr "Fila har ingen tillaten MIME-type."
#: lib/graphql/resolvers/group.ex:167
#, elixir-format
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "Profilen er ikkje administrator for gruppa"
#: lib/graphql/resolvers/event.ex:284
#, elixir-format
#: lib/graphql/resolvers/event.ex:284
msgid "You can't edit this event."
msgstr "Du kan ikkje endra denne hendinga."
#: lib/graphql/resolvers/event.ex:287
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "You can't attribute this event to this profile."
msgstr "Du kan ikkje kopla denne hendinga til denne profilen."
#: lib/graphql/resolvers/member.ex:137
#, elixir-format
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Invitasjonen finst ikkje."
#: lib/graphql/resolvers/member.ex:179
#, elixir-format
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Denne medlemen har allereie fått avslag."
#: lib/graphql/resolvers/member.ex:186
#, elixir-format
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Du har ikkje løyve til å fjerna denne medlemen."
#: lib/mobilizon/actors/actor.ex:351
#, elixir-format
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr "Dette brukarnamnet er oppteke."
#: lib/graphql/resolvers/discussion.ex:73
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Du må gje anten ein ID eller ei stuttadresse for å få tilgang til ordskiftet"
#: lib/graphql/resolvers/event.ex:245
#, elixir-format
#: lib/graphql/resolvers/event.ex:245
msgid "Organizer profile is not owned by the user"
msgstr "Brukaren eig ikkje arrangørprofilen"
#: lib/graphql/resolvers/participant.ex:89
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
msgid "Profile ID provided is not the anonymous profile one"
msgstr "Denne profil-IDen er ikkje den anonyme profilen"
#: lib/graphql/resolvers/person.ex:131 lib/graphql/resolvers/person.ex:158
#: lib/graphql/resolvers/person.ex:250
#, elixir-format
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
msgid "The provided picture is too heavy"
msgstr "Dette biletet er for stort"
#: lib/web/views/utils.ex:33
#, elixir-format
#: lib/web/views/utils.ex:33
msgid "Index file not found. You need to recompile the front-end."
msgstr "Fann ikkje indeksfila. Du må kompilera framsida på nytt."
#: lib/graphql/resolvers/resource.ex:122
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Greidde ikkje laga ressursen"
#: lib/graphql/resolvers/user.ex:390
#, elixir-format
#: lib/graphql/resolvers/user.ex:390
msgid "Invalid activation token"
msgstr "Ugyldig aktiveringslykjel"
#: lib/graphql/resolvers/resource.ex:208
#, elixir-format
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr "Greidde ikkje henta ressursdetaljane frå denne adressa."
#, elixir-format
#: lib/graphql/resolvers/event.ex:145 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Moderatorprofilen har ikkje tilgang til denne hendinga"

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