Merge branch 'v5.0-WIP' into 'main'

all developments of milestone 1

Closes #1419 and #1414

See merge request framasoft/mobilizon!1548
This commit is contained in:
setop 2024-04-10 12:36:22 +00:00
commit 162d4f5fb1
266 changed files with 5391 additions and 2609 deletions

View file

@ -306,7 +306,7 @@ docker-latest:
# Packaging app for amd64
package-app:
image: mobilizon/buildpack:1.15.7-erlang-26.1.2-${SYSTEM}
image: mobilizon/buildpack:1.16.1-erlang-26.2.2-${SYSTEM}
stage: build
variables: &release-variables
MIX_ENV: "prod"
@ -340,7 +340,6 @@ package-app:
"debian-buster",
"ubuntu-jammy",
"ubuntu-focal",
"ubuntu-bionic",
"fedora-38",
"fedora-39",
]

View file

@ -1,20 +1,14 @@
155A1FB53DE39EC8EFCFD7FB94EA823D
1C29EE70E90ECED01AF28EC58D2575B5
26ED12A8E03D044BEDC08749BAA5E357
2BB1D36656B423758A470021718FCB09
31CE26BC979C57B9E3CC97B40C290CE5
3529E7A4CECC24D02678820E6F521162
3644C4E850300482AA409471EFE1EFB3
4E7C044C59E0BCB76AA826789998F624
53CBBEB6243FAF5C37249CBA17DE6F4C
5BCE3651A03711295046DE48BDFE007E
5C4CED447689F00D9D1ACEB9B895ED29
5D8350E7A2DE5BB1CBCC983AF121F0DA
94ACF7B17C3FF42F64E57DD1DA936BD8
A32E125003F1EDFAD95C487C6A969725
ACF6272A1DBB3A2ABD96C0C120B5CA69
C46C4893B2F702ACADC4CAA5683FE370
CDF2CCE0CF10F49CDFAE22FE26208155
CD4CD6571816FCAF1E305066CDA0CD2F
E720CB13C50FF3ADEE7C522531E11217
F3D5851D3FB050939841ED2F14307A27
FD1C9756370A195B74E95CE504C45E9E

View file

@ -1,2 +1,3 @@
erlang 26.2.2
elixir 1.16.1-otp-26
nodejs 18.19.1

View file

@ -5,6 +5,105 @@ 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).
## 4.1.0 (2024-02-29)
This release is the last provided by Framasoft. [The project is now supported by the Kaihuri association](https://framacolibri.org/t/mobilizon-nous/19752).
The highlights for this release are the following:
- improved event federation with https://event-federation.eu and https://gancio.org, as well as adding event metadata in summary for micro-blogging platforms that make use of it like Mastodon
- allowing to filter events by local-only, so that you can find only the events created on this instance
### Features
* **activitpub:** add summary of metadata to events ([1441d35](https://framagit.org/framasoft/mobilizon/commits/1441d35e0b0c3a151b8626711b3acaf30d3dcf58))
* **activitypub:** allow simple text for address field ([64237cf](https://framagit.org/framasoft/mobilizon/commits/64237cfc2633794a48022a059c79155b1ece14d1)), closes [#1387](https://framagit.org/framasoft/mobilizon/issues/1387)
* **activitypub:** implement FEP-2677 to identify the application actor used for federation ([f10977a](https://framagit.org/framasoft/mobilizon/commits/f10977a99ac73ce5a702a12ed31e773a4b0f6961)), closes [#1367](https://framagit.org/framasoft/mobilizon/issues/1367)
* allow to filter events by local-only ([9d99684](https://framagit.org/framasoft/mobilizon/commits/9d996844025f9d128305a54f8f169fb4b1ffac44)), closes [#1322](https://framagit.org/framasoft/mobilizon/issues/1322)
* **config:** enable instance feeds by default ([ab3f5df](https://framagit.org/framasoft/mobilizon/commits/ab3f5dfd278dc55dd0f28bb11cf4a976d212e9fc))
* **docker:** add new environment variables for Docker config ([28430d6](https://framagit.org/framasoft/mobilizon/commits/28430d6d57a85b568c839e75ba1bcbff90e4149e))
* **front:** upgrade to Oruga 0.8.x ([a9676d6](https://framagit.org/framasoft/mobilizon/commits/a9676d6481e6966d939ea4e44ad610eb9231c370))
* **graphql:** increase max_complexity to 300 ([dcbb8ea](https://framagit.org/framasoft/mobilizon/commits/dcbb8eae01012e6e3aa2c83e06cc50f61176b8ef))
* **http:** allow to provide self-signed certificates ([baa11c1](https://framagit.org/framasoft/mobilizon/commits/baa11c18b03684e508e56793a800878e95644962)), closes [#1355](https://framagit.org/framasoft/mobilizon/issues/1355)
* **nodeinfo:** extract and save NodeInfo information from instances to display it on instances list ([99b2339](https://framagit.org/framasoft/mobilizon/commits/99b2339424edb5b0c514581fbd6a42e4f0fcc5e1)), closes [#1392](https://framagit.org/framasoft/mobilizon/issues/1392)
### Bug Fixes
* **activitypub:** also handle as:Public and Public values for public addressing ([4dc2f48](https://framagit.org/framasoft/mobilizon/commits/4dc2f489e79d4f7d64ba3d5c2588d5d6ec0bc99c)), closes [#1413](https://framagit.org/framasoft/mobilizon/issues/1413)
* **activitypub:** consider PM as private conversations even if attributed_to_id is defined ([387d3b1](https://framagit.org/framasoft/mobilizon/commits/387d3b1c30ec719a992c565fd495ef2b6642641e))
* **activitypub:** do not try to calculate timezone from missing geo-coordinates ([001a0ed](https://framagit.org/framasoft/mobilizon/commits/001a0ed1a50894ad1abe0f7fc9dc5b9666de5dae))
* **activitypub:** handle actors following with manually_approves_followers not set ([7351468](https://framagit.org/framasoft/mobilizon/commits/73514688423b92b9f62b52fd54f2e523abeb3e34))
* **activitypub:** handle any type of error when fetching Application actor from NodeInfo ([9308c53](https://framagit.org/framasoft/mobilizon/commits/9308c5399dc2e7afd8844d083de2ea291a3c5a66))
* **activitypub:** handle issue with AP Fetcher not catching some changeset errors ([e3b3643](https://framagit.org/framasoft/mobilizon/commits/e3b36434cb05feb2e6add2b6b229e83b9dccf825)), closes [#1409](https://framagit.org/framasoft/mobilizon/issues/1409)
* **activitypub:** make relay outbox events ordered by desc publication date ([e73fd9b](https://framagit.org/framasoft/mobilizon/commits/e73fd9b370b9679a0ab424a0bd44f262a21a4697))
* **activitypub:** refresh NodeInfo metadata straight away when adding a new instance to follow ([2f4b8fe](https://framagit.org/framasoft/mobilizon/commits/2f4b8feeba9e7e1c4d1fc967505b3ed80e314b3c))
* allow html_to_text to receive nil, e.g. for empty event descriptions ([5030b75](https://framagit.org/framasoft/mobilizon/commits/5030b755a0880a022d0656598b591cb47ebd7dc5))
* **announcements:** error message not showing when an event announcement is created with empty text ([ef20585](https://framagit.org/framasoft/mobilizon/commits/ef20585f8cc1e4ac2f2f3359a70b7f456d2adeeb))
* **announcements:** make sure only valid announcements are shown to the user ([c9a1c35](https://framagit.org/framasoft/mobilizon/commits/c9a1c35aa7a1d399b524dc5cc1fbebb38681ee24))
* **backend:** avoid duplicating locality and region if they are the same ([5de22f9](https://framagit.org/framasoft/mobilizon/commits/5de22f91e22109da9e2169928dc744acd94b7299))
* **backend:** fix sending N notifications to a single conversation participant ([9537988](https://framagit.org/framasoft/mobilizon/commits/95379885c8fb3decd19fa434774023a7b05ef0b5)), closes [#1384](https://framagit.org/framasoft/mobilizon/issues/1384)
* **backend:** hide non-public replies to comments in event comment threads ([10c4038](https://framagit.org/framasoft/mobilizon/commits/10c4038b856b7e5c4981dcdce0bb9a885afb3cea))
* **backend:** only send announcement event emails when the comment author has the right to do so ([0bd00de](https://framagit.org/framasoft/mobilizon/commits/0bd00de501b36c5f2320c2530019f302bf084517))
* **backend:** validate length of instance actor details and set description column to text ([f7585cf](https://framagit.org/framasoft/mobilizon/commits/f7585cfc759576475133bcc86d2e816b2553626d)), closes [#1393](https://framagit.org/framasoft/mobilizon/issues/1393)
* **back:** fix instances filtering ([b3ba45e](https://framagit.org/framasoft/mobilizon/commits/b3ba45e8a73038dc70286afbb479c1db51b6fbcd))
* **back:** sitemapper fix after upgrade ([1acf931](https://framagit.org/framasoft/mobilizon/commits/1acf931ac558ac0818213264a6177a1f647393f1))
* **docker:** add --break-system-packages to pip install to add weasyprint and pyexcel-ods3 ([889cb91](https://framagit.org/framasoft/mobilizon/commits/889cb91f2649861a87eb7e959065cfb49b30f366))
* **docker:** remove openssl1.1-compat ([75d7816](https://framagit.org/framasoft/mobilizon/commits/75d7816a6cd1fe6754a66c1bb81153068b9c13e3)), closes [#1390](https://framagit.org/framasoft/mobilizon/issues/1390)
* **event announcements:** only show comments from event organizers in event announcement list ([01eecbf](https://framagit.org/framasoft/mobilizon/commits/01eecbf1d46614241c92e1a38e30057a84c55744))
* **feeds:** increase feed item limit from 500 to 5000 ([ff0440c](https://framagit.org/framasoft/mobilizon/commits/ff0440c634ac17813607f5929cd4024d87601c3b))
* **feeds:** make sure posts for feeds are ordered by publication date desc ([3c75856](https://framagit.org/framasoft/mobilizon/commits/3c7585614971849035011ede6c0d5d2d5621df81))
* **front-end:** fix current actor not being set on first access when relogging ([ae466b8](https://framagit.org/framasoft/mobilizon/commits/ae466b879cd09a9d04ffab0469ee991c7d90ce8e))
* **front-end:** fix issues with expired accessToken refreshment queue ([d4489f6](https://framagit.org/framasoft/mobilizon/commits/d4489f691b312891013767f7e39d92a9b0863387))
* **front:** add a required attribute to the text editor and show error message if text empty on blur ([ba66874](https://framagit.org/framasoft/mobilizon/commits/ba66874cc3e5979c2a9a6f86ea55463eca911472))
* **front:** add announcements link on EventParticipationCard as well as EventView ([83eb5c6](https://framagit.org/framasoft/mobilizon/commits/83eb5c6a69ac312c19dc3cef10f26ab686cb4be7))
* **front:** add condition on DraggableList in ResourceFolder.vue ([a408b47](https://framagit.org/framasoft/mobilizon/commits/a408b476cf2151298c7cf4eb6b3268334be13599))
* **front:** correctly show error message when a tag is too short ([cba2075](https://framagit.org/framasoft/mobilizon/commits/cba2075431d1de4bf621e1d2b2a2e5f0641997c6)), closes [#1382](https://framagit.org/framasoft/mobilizon/issues/1382)
* **front:** create head without old options ([45f8757](https://framagit.org/framasoft/mobilizon/commits/45f8757d72d1a2c72d069ced6fcbe21571d334c5))
* **frontend:** various fixes ([456dc36](https://framagit.org/framasoft/mobilizon/commits/456dc36f64b3eb7c43d8ff69aa458b89b5a5b4ab))
* **front:** escape event.title when it's passed to dialog component HTML message ([f4ee116](https://framagit.org/framasoft/mobilizon/commits/f4ee11611294c2cc957453768f768de0a51b05a7))
* **front:** fix debouncing instances filtering ([fe0cf93](https://framagit.org/framasoft/mobilizon/commits/fe0cf9360428185d261dad4065a7bea1dd8d8d59))
* **front:** fix dialog from EventParticipationCard.vue without input ([89641c5](https://framagit.org/framasoft/mobilizon/commits/89641c502ef5771f93cfa55caea6b52c63e73b4b))
* **front:** fix ErrorComponent.vue sentry integration ([00d8bc7](https://framagit.org/framasoft/mobilizon/commits/00d8bc733d52a810c438e1081496e3b0ac58958f))
* **front:** fix focus when creating a new resource ([76668e0](https://framagit.org/framasoft/mobilizon/commits/76668e0bebd2bd235925494f90fac6400e74d179))
* **front:** fix focusing text editor ([3b7124a](https://framagit.org/framasoft/mobilizon/commits/3b7124a57b2dedf5583fdebced6b9a4e502e8731))
* **front:** fix reporting group ([57d0372](https://framagit.org/framasoft/mobilizon/commits/57d0372ce8b29952caff8bbf7c902c7862a77b49))
* **front:** fix TagInput display ([790db90](https://framagit.org/framasoft/mobilizon/commits/790db906a6e814352aa694c26febb9d6a43fa321))
* **front:** fix TagInput width properly ([6a4123f](https://framagit.org/framasoft/mobilizon/commits/6a4123f385fb2e20aab1c1cbc666c5d1a3f93589))
* **front:** husky fixes after upgrade ([04edc4f](https://framagit.org/framasoft/mobilizon/commits/04edc4fef08306c55067abd0e22443c4cb43d7c8))
* **front:** improve display of SendPasswordReset view ([1d39eb5](https://framagit.org/framasoft/mobilizon/commits/1d39eb548898b3c4840b4a36950a62b4ce46ba90))
* **front:** only update identity username from name if it's a new identity ([34c0dd6](https://framagit.org/framasoft/mobilizon/commits/34c0dd6498247cf6a90576a602c4e305c80c9692))
* **front:** patch vue-i18n-extract because of mjs incompatibility ([1f4a7c2](https://framagit.org/framasoft/mobilizon/commits/1f4a7c253bfe40809b432f3a36faa6b5fb340ae9))
* **front:** remove broken identity check in EventMinimalistCard ([ee63814](https://framagit.org/framasoft/mobilizon/commits/ee6381463d9f8e6d130e29b410cf5e2700f3c10b))
* **front:** reset instances list to page 1 if filter or follow status changes ([2b5439b](https://framagit.org/framasoft/mobilizon/commits/2b5439b1d0ef1f60c19019540a01eb6d437eee23))
* **front:** reset page to lower or page 1 if we didn't found results in instances view ([48f57ec](https://framagit.org/framasoft/mobilizon/commits/48f57ec1cf3ce81c3c83333bea59c2a7d8c70e99))
* **front:** rollback to vue 3.3 for now ([5cb4fc1](https://framagit.org/framasoft/mobilizon/commits/5cb4fc11c4ccc381a041cb2615913a8fb77e1b85))
* **front:** show correct label when adding a new calc or videoconference resource in resources ([cecbea6](https://framagit.org/framasoft/mobilizon/commits/cecbea6db52d360e046d69cf0762eb1208c45f19))
* **front:** tagInput fixes ([f6bcb02](https://framagit.org/framasoft/mobilizon/commits/f6bcb02b9802e04bd8e9c80092a0680b64482688))
* **front:** uI fixes ([0948cce](https://framagit.org/framasoft/mobilizon/commits/0948cce83e5af128f78b67891ed24c323b159f0f))
* **front:** use functions to generate classnames dynamically ([98230a5](https://framagit.org/framasoft/mobilizon/commits/98230a56bb5e1c75f070e4d4c352028741869066))
* **front:** various cleanups ([6a482b0](https://framagit.org/framasoft/mobilizon/commits/6a482b0d9754fc85f1f61922e92852fbca52beb9))
* **front:** various little CSS fixes ([51d43aa](https://framagit.org/framasoft/mobilizon/commits/51d43aa2d1d1f099078895d67a45fc27b74d4604))
* **front:** various UI improvements ([a6a1ab7](https://framagit.org/framasoft/mobilizon/commits/a6a1ab71c23264805d61b5312982e6d345454027))
* **front:** vite fixes after upgrade (everything is esm) ([b1ecf4b](https://framagit.org/framasoft/mobilizon/commits/b1ecf4b36f5855c895f72c4d9dc0f7e1beb449e1))
* **graphql:** add missing operation name for RegisterPerson ([a47f4f6](https://framagit.org/framasoft/mobilizon/commits/a47f4f6444d12a13a6f7e79ed6746e74088ca294))
* **graphql:** fix checking actor identity when publishing event announcements ([5bc0593](https://framagit.org/framasoft/mobilizon/commits/5bc0593ed6e772d48722c308ccb444dc49f3c079))
* **nodeinfo:** fix getting application actor information from NodeInfo response ([dd775b6](https://framagit.org/framasoft/mobilizon/commits/dd775b6ae25f381cf76e00999fd7d37764870122))
* **nodeinfo:** make sure we only process JSON content ([da3b074](https://framagit.org/framasoft/mobilizon/commits/da3b0746198544d7977d9c0b32d8a26e1da64d40))
* **front:** fix adding tags to an event ([d75d464](https://framagit.org/framasoft/mobilizon/commits/d75d464135332f639bd275684109a89980718b75)), closes [#1419](https://framagit.org/framasoft/mobilizon/issues/1419)
* **front:** fix space around input icons ([ba9299c](https://framagit.org/framasoft/mobilizon/commits/ba9299c6321cd62bb84efb6db5b6e122e4b1b264))
* **backend:** set Gettext default locale to "en" ([d390a91](https://framagit.org/framasoft/mobilizon/commits/d390a915d80ce5d2447f5323b78c71e9e1aa58dc))
* **front:** fix discussion comment changed subscription done before having slug value ([0670297](https://framagit.org/framasoft/mobilizon/commits/067029705dd3c78b54ea4765357ba58930144aab))
* **front:** fix typing for canReport prop on DiscussionComment ([c2055d9](https://framagit.org/framasoft/mobilizon/commits/c2055d92ae7707b5aab3fd14ea827df0696cca61))
* **front:** remove extra classes on comment that are not needed ([a9b9775](https://framagit.org/framasoft/mobilizon/commits/a9b977540b900416cfe0d5739cba13e506f83120))
## 4.1.0-beta.1 (2024-02-27)
### Bug Fixes
* **front:** fix adding tags to an event ([d75d464](https://framagit.org/framasoft/mobilizon/commits/d75d464135332f639bd275684109a89980718b75)), closes [#1419](https://framagit.org/framasoft/mobilizon/issues/1419)
* **front:** fix space around input icons ([ba9299c](https://framagit.org/framasoft/mobilizon/commits/ba9299c6321cd62bb84efb6db5b6e122e4b1b264))
## 4.1.0-alpha.1 (2024-02-09)
### Features

View file

@ -630,7 +630,7 @@ state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Mobilizon
Copyright (C) 2018 Thomas Citharel
Copyright (C) 2018 - 2024 Framasoft
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published

View file

@ -19,8 +19,8 @@ stop:
@bash docker/message.sh "Mobilizon is stopped"
test: stop
@bash docker/message.sh "Running tests"
docker compose -f docker compose.yml -f docker compose.test.yml run api mix prepare_test
docker compose -f docker compose.yml -f docker compose.test.yml run api mix test $(only)
docker compose -f docker-compose.yml -f docker-compose.test.yml run api mix prepare_test
docker compose -f docker-compose.yml -f docker-compose.test.yml run api mix test $(only)
@bash docker/message.sh "Done running tests"
format:
docker compose run --rm api bash -c "mix format && mix credo --strict"

View file

@ -7,7 +7,7 @@
Mobilizon is your federated organization and mobilization platform. Gather people with a convivial, ethical, and emancipating tool.
<p align="center">
<strong>Developed with ♥ by <a href="https://framasoft.org">Framasoft</a></strong>
<strong>2017 - 2024 Developed with ♥ by <a href="https://framasoft.org">Framasoft</a></strong>
</p>
<p align="center">

View file

@ -1,7 +1,7 @@
[Mobilizon](https://joinmobilizon.org) takes security, privacy and user control seriously, and we want to put them front and centre of our project.
This document outlines security procedures and general policies for the Mobilizon project.
Framasoft, the Mobilizon maintainer team and community take all security bugs in Mobilizon seriously. Thank you for improving the security of Mobilizon. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions.
The Mobilizon maintainer team and community take all security bugs in Mobilizon seriously. Thank you for improving the security of Mobilizon. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions.
### Goals
@ -15,8 +15,6 @@ Framasoft, the Mobilizon maintainer team and community take all security bugs in
* GDPR compliance.
Framasoft is both a developer of open-source/free/libre self-hosted software, and a service provider with users in the European Union. As a result, we are putting user privacy, data sovereignty, and GDPR compliance into our security plans, including asking both the Framasoft community and outside hackers to review our approaches and implementations.
### Challenges
[Mobilizon](https://joinmobilizon.org) will be challenging to keep secure, as it is:
@ -33,14 +31,14 @@ This means there are more attack surfaces compared to typical proprietary, centr
We are committed to working with security researchers to verify, reproduce, and respond to legitimate reported vulnerabilities. You can help us by following these simple guidelines:
* Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org.
* Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer.
* Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible
* Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services
* Do not access or modify users private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes;
* Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability;
* Contact a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability;
* The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
* Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!)
* Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure
* Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against the project managers (and their partners') infrastructure
Note : Please report security bugs in third-party modules to the person or team maintaining the module.

View file

@ -36,6 +36,7 @@ config :mobilizon, :instance,
unconfirmed_user_grace_period_hours: 48,
activity_expire_days: 365,
activity_keep_number: 100,
duration_of_long_event: 30,
enable_instance_feeds: true,
email_from: "noreply@localhost",
email_reply_to: "noreply@localhost"
@ -205,6 +206,8 @@ config :codepagex, :encodings, [
:"VENDORS/MICSFT/WINDOWS/CP1252"
]
config :gettext, :default_locale, "en"
config :mobilizon, Mobilizon.Web.Gettext, split_module_by: [:locale, :domain]
config :ex_cldr,

View file

@ -5,9 +5,9 @@ config :mobilizon, Mobilizon.Web.Endpoint,
port: String.to_integer(System.get_env("MOBILIZON_INSTANCE_HOST_PORT", "4000"))
],
url: [
host: System.get_env("MOBILIZON_INSTANCE_HOST", "mobilizon.local"),
port: String.to_integer(System.get_env("MOBILIZON_INSTANCE_HOST_PORT", "80")),
scheme: "http"
host: System.get_env("MOBILIZON_INSTANCE_HOST", "localhost"),
port: String.to_integer(System.get_env("MOBILIZON_INSTANCE_HOST_PORT", "4000")),
scheme: System.get_env("MOBILIZON_INSTANCE_SCHEME", "http")
],
secret_key_base: System.get_env("MOBILIZON_INSTANCE_SECRET_KEY_BASE", "changethis"),
debug_errors: true,

View file

@ -2,7 +2,8 @@ import Config
config :mobilizon, :instance,
name: "Test instance",
registrations_open: true
registrations_open: true,
duration_of_long_event: 0
# We don't run a server during test. If one is required,
# you can enable the server option below.

View file

@ -1,4 +1,4 @@
ARG IMAGE="elixir:1.15"
ARG IMAGE="elixir:1.16"
FROM ${IMAGE} as build
SHELL ["/bin/bash", "-c"]

View file

@ -9,7 +9,7 @@ COPY . .
RUN npm install && npm run build
# Then, build the application binary
FROM elixir:1.15-alpine AS builder
FROM elixir:1.16-alpine AS builder
# Fix qemu segfault on arm64
# See https://github.com/plausible/analytics/pull/2879 and https://github.com/erlang/otp/pull/6340

View file

@ -1,11 +1,10 @@
FROM elixir:latest
LABEL maintainer="Thomas Citharel <thomas.citharel@framasoft.org>"
ENV REFRESHED_AT=2023-11-20
ENV REFRESHED_AT=2024-02-29
RUN apt-get update -yq && apt-get install -yq ca-certificates build-essential inotify-tools postgresql-client git curl gnupg xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 cmake exiftool python3-pip python3-setuptools
RUN mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && apt-get update && apt-get install nodejs -yq
RUN npm install -g wait-on
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN mix local.hex --force && mix local.rebar --force
RUN pip3 --no-cache-dir install -Iv weasyprint pyexcel_ods3
RUN pip --no-cache-dir install --break-system-packages weasyprint pyexcel-ods3
RUN curl https://dbip.mirror.framasoft.org/files/dbip-city-lite-latest.mmdb --output GeoLite2-City.mmdb -s && mkdir -p /usr/share/GeoIP && mv GeoLite2-City.mmdb /usr/share/GeoIP/

View file

@ -57,15 +57,25 @@ defmodule Mobilizon.GraphQL.API.Events do
defp process_picture(%{media_id: _picture_id} = args, _), do: args
defp process_picture(%{media: media}, %Actor{id: actor_id}) do
with uploaded when is_map(uploaded) <-
media
|> Map.get(:file)
|> Utils.make_media_data(description: Map.get(media, :name)) do
# case url
if Map.has_key?(media, :url) do
%{
file: Map.take(uploaded, [:url, :name, :content_type, :size]),
metadata: Map.take(uploaded, [:width, :height, :blurhash]),
file: %{"url" => media.url, "name" => media.name},
actor_id: actor_id
}
# case upload
else
with uploaded when is_map(uploaded) <-
media
|> Map.get(:file)
|> Utils.make_media_data(description: Map.get(media, :name)) do
%{
file: Map.take(uploaded, [:url, :name, :content_type, :size]),
metadata: Map.take(uploaded, [:width, :height, :blurhash]),
actor_id: actor_id
}
end
end
end

View file

@ -5,11 +5,10 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
import Mobilizon.Users.Guards
alias Mobilizon.{Actors, Admin, Config, Events, Instances, Users}
alias Mobilizon.{Actors, Admin, Config, Events, Instances, Media, Users}
alias Mobilizon.Actors.{Actor, Follower}
alias Mobilizon.Admin.{ActionLog, Setting}
alias Mobilizon.Admin.{ActionLog, Setting, SettingMedia}
alias Mobilizon.Cldr.Language
alias Mobilizon.Config
alias Mobilizon.Discussions.Comment
alias Mobilizon.Events.Event
alias Mobilizon.Federation.ActivityPub.{Actions, Relay}
@ -20,6 +19,9 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
alias Mobilizon.Storage.Page
alias Mobilizon.Users.User
alias Mobilizon.Web.Email
alias Mobilizon.GraphQL.Resolvers.Media, as: MediaResolver
import Mobilizon.Web.Gettext
require Logger
@ -268,8 +270,11 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
with {:ok, res} <- Admin.save_settings("instance", args),
res <-
res
|> Enum.map(fn {key, %Setting{value: value}} ->
{key, Admin.get_setting_value(value)}
|> Enum.map(fn {key, val} ->
case val do
%Setting{value: value} -> {key, Admin.get_setting_value(value)}
%SettingMedia{media: media} -> {key, media}
end
end)
|> Enum.into(%{}),
:ok <- eventually_update_instance_actor(res) do
@ -284,6 +289,38 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
dgettext("errors", "You need to be logged-in and an administrator to save admin settings")}
end
@spec get_media_setting(any(), any(), Absinthe.Resolution.t()) ::
{:ok, Media.t()} | {:error, String.t()}
def get_media_setting(_parent, %{group: group, name: name}, %{
context: %{current_user: %User{role: role}}
})
when is_admin(role) do
{:ok, MediaResolver.transform_media(Admin.get_admin_setting_media(group, name, nil))}
end
def get_media_setting(_parent, _args, _resolution) do
{:error,
dgettext("errors", "You need to be logged-in and an administrator to access admin settings")}
end
@spec get_instance_logo(any(), any(), Absinthe.Resolution.t()) ::
{:ok, Media.t() | nil} | {:error, String.t()}
def get_instance_logo(parent, _args, resolution) do
get_media_setting(parent, %{group: "instance", name: "instance_logo"}, resolution)
end
@spec get_instance_favicon(any(), any(), Absinthe.Resolution.t()) ::
{:ok, Media.t() | nil} | {:error, String.t()}
def get_instance_favicon(parent, _args, resolution) do
get_media_setting(parent, %{group: "instance", name: "instance_favicon"}, resolution)
end
@spec get_default_picture(any(), any(), Absinthe.Resolution.t()) ::
{:ok, Media.t() | nil} | {:error, String.t()}
def get_default_picture(parent, _args, resolution) do
get_media_setting(parent, %{group: "instance", name: "default_picture"}, resolution)
end
@spec update_user(any, map(), Absinthe.Resolution.t()) ::
{:error, :invalid_argument | :user_not_found | binary | Ecto.Changeset.t()}
| {:ok, Mobilizon.Users.User.t()}

View file

@ -5,8 +5,11 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do
alias Mobilizon.Config
alias Mobilizon.Events.Categories
alias Mobilizon.Medias.Media
alias Mobilizon.Service.{AntiSpam, FrontEndAnalytics}
alias Mobilizon.GraphQL.Resolvers.Media, as: MediaResolver
@doc """
Gets config.
"""
@ -31,6 +34,16 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do
{:ok, data}
end
@spec instance_logo(any(), map(), Absinthe.Resolution.t()) :: {:ok, Media.t()}
def instance_logo(_parent, _params, _resolution) do
{:ok, MediaResolver.transform_media(Config.instance_logo())}
end
@spec default_picture(any(), map(), Absinthe.Resolution.t()) :: {:ok, Media.t()}
def default_picture(_parent, _params, _resolution) do
{:ok, MediaResolver.transform_media(Config.default_picture())}
end
@spec terms(any(), map(), Absinthe.Resolution.t()) :: {:ok, map()}
def terms(_parent, %{locale: locale}, _resolution) do
type = Config.instance_terms_type()
@ -94,10 +107,15 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do
registrations_allowlist: Config.instance_registrations_allowlist?(),
contact: Config.contact(),
demo_mode: Config.instance_demo_mode?(),
long_events: Config.instance_long_events?(),
description: Config.instance_description(),
long_description: Config.instance_long_description(),
slogan: Config.instance_slogan(),
languages: Config.instance_languages(),
instance_logo: Config.instance_logo(),
primary_color: Config.primary_color(),
secondary_color: Config.secondary_color(),
default_picture: Config.default_picture(),
anonymous: %{
participation: %{
allowed: Config.anonymous_participation?(),

View file

@ -18,6 +18,10 @@ defmodule Mobilizon.GraphQL.Resolvers.Media do
do_fetch_media(media_id)
end
def media(%{media_id: media_id} = _parent, _args, _resolution) do
do_fetch_media(media_id)
end
def media(%{picture: media} = _parent, _args, _resolution), do: {:ok, media}
def media(_parent, %{id: media_id}, _resolution), do: do_fetch_media(media_id)
def media(_parent, _args, _resolution), do: {:ok, nil}
@ -133,8 +137,10 @@ defmodule Mobilizon.GraphQL.Resolvers.Media do
def user_size(_parent, _args, _resolution), do: {:error, :unauthenticated}
@spec transform_media(Media.t()) :: map()
defp transform_media(%Media{id: id, file: file, metadata: metadata}) do
@spec transform_media(Media.t() | nil) :: map() | nil
def transform_media(nil), do: nil
def transform_media(%Media{id: id, file: file, metadata: metadata}) do
%{
name: file.name,
url: file.url,

View file

@ -124,6 +124,24 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
field(:instance_terms_type, :instance_terms_type, description: "The instance's terms type")
field(:instance_terms_url, :string, description: "The instance's terms URL")
field(:instance_logo, :media,
description: "The instance's logo",
resolve: &Admin.get_instance_logo/3
)
field(:instance_favicon, :media,
description: "The instance's favicon",
resolve: &Admin.get_instance_favicon/3
)
field(:default_picture, :media,
description: "The default picture",
resolve: &Admin.get_default_picture/3
)
field(:primary_color, :string, description: "The instance's primary color")
field(:secondary_color, :string, description: "The instance's secondary color")
field(:instance_privacy_policy, :string,
description: "The instance's privacy policy body text"
)
@ -412,6 +430,25 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
arg(:instance_long_description, :string, description: "The instance's long description")
arg(:instance_slogan, :string, description: "The instance's slogan")
arg(:contact, :string, description: "The instance's contact details")
arg(:instance_logo, :media_input,
description:
"The instance's logo, either as an object or directly the ID of an existing media"
)
arg(:instance_favicon, :media_input,
description:
"The instance's favicon, either as an object or directly the ID of an existing media"
)
arg(:default_picture, :media_input,
description:
"The default picture, either as an object or directly the ID of an existing media"
)
arg(:primary_color, :string, description: "The instance's primary color")
arg(:secondary_color, :string, description: "The instance's secondary color")
arg(:instance_terms, :string, description: "The instance's terms body text")
arg(:instance_terms_type, :instance_terms_type, description: "The instance's terms type")
arg(:instance_terms_url, :string, description: "The instance's terms URL")

View file

@ -31,6 +31,7 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do
)
field(:demo_mode, :boolean, description: "Whether the demo mode is enabled")
field(:long_events, :boolean, description: "Whether the long events mode is enabled")
field(:country_code, :string, description: "The country code from the IP")
field(:location, :lonlat, description: "The IP's location")
field(:geocoding, :geocoding, description: "The instance's geocoding settings")
@ -59,6 +60,17 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do
resolve(&Config.terms/3)
end
field(:instance_logo, :media, description: "The instance's logo") do
resolve(&Config.instance_logo/3)
end
field(:default_picture, :media, description: "The default picture") do
resolve(&Config.default_picture/3)
end
field(:primary_color, :string, description: "The instance's primary color")
field(:secondary_color, :string, description: "The instance's secondary color")
field(:privacy, :privacy, description: "The instance's privacy policy") do
arg(:locale, :string,
default_value: "en",

View file

@ -263,6 +263,10 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
description: "Whether or not to show the participation price"
)
field(:hide_number_of_participants, :boolean,
description: "Whether or not the number of participants is hidden"
)
field(:show_start_time, :boolean, description: "Show event start time")
field(:show_end_time, :boolean, description: "Show event end time")
@ -316,6 +320,10 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
description: "Whether or not to show the participation price"
)
field(:hide_number_of_participants, :boolean,
description: "Whether or not the number of participants is hidden"
)
field(:show_start_time, :boolean, description: "Show event start time")
field(:show_end_time, :boolean, description: "Show event end time")

View file

@ -52,8 +52,9 @@ defmodule Mobilizon.GraphQL.Schema.MediaType do
input_object :media_input_object do
field(:name, non_null(:string), description: "The media's name")
field(:alt, :string, description: "The media's alternative text")
field(:file, non_null(:upload), description: "The media file")
field(:file, :upload, description: "The media file")
field(:actor_id, :id, description: "The media owner")
field(:url, :string, description: "The media URL")
end
object :media_queries do

View file

@ -273,6 +273,8 @@ defmodule Mobilizon.GraphQL.Schema.SearchType do
description: "Radius around the location to search in"
)
arg(:longevents, :boolean, description: "if mention filter in or out long events")
arg(:bbox, :string, description: "The bbox to search events into")
arg(:zoom, :integer, description: "The zoom level for searching events")

View file

@ -9,7 +9,8 @@ defmodule Mobilizon.Admin do
alias Mobilizon.Actors.Actor
alias Mobilizon.{Admin, Users}
alias Mobilizon.Admin.ActionLog
alias Mobilizon.Admin.Setting
alias Mobilizon.Admin.{Setting, SettingMedia}
alias Mobilizon.Medias.Media
alias Mobilizon.Storage.{Page, Repo}
alias Mobilizon.Users.User
@ -78,9 +79,47 @@ defmodule Mobilizon.Admin do
defp stringify_struct(struct), do: struct
@spec get_all_admin_settings :: list(Setting.t())
@spec get_all_admin_settings :: map()
def get_all_admin_settings do
Repo.all(Setting)
medias =
SettingMedia
|> Repo.all()
|> Repo.preload(:media)
|> Enum.map(fn %SettingMedia{group: group, name: name, media: media} ->
{group, name, media}
end)
values =
Setting
|> Repo.all()
|> Enum.map(fn %Setting{group: group, name: name, value: value} ->
{group, name, get_setting_value(value)}
end)
all_settings = Enum.concat(values, medias)
Enum.reduce(
all_settings,
%{},
# For each {group,name,value}
fn {group, name, value}, acc ->
# We update the %{group: map} in the accumulator
{_, new_acc} =
Map.get_and_update(
acc,
group,
# We put the %{name: value} into the %{group: map}
fn group_map ->
{
group_map,
Map.put(group_map || %{}, name, value)
}
end
)
new_acc
end
)
end
@spec get_admin_setting_value(String.t(), String.t(), String.t() | nil) ::
@ -119,21 +158,40 @@ defmodule Mobilizon.Admin do
end
end
@spec get_admin_setting_media(String.t(), String.t(), String.t() | nil) ::
{:ok, Media.t()} | {:error, :not_found} | nil
def get_admin_setting_media(group, name, fallback \\ nil)
when is_binary(group) and is_binary(name) do
case SettingMedia
|> where(group: ^group)
|> where(name: ^name)
|> preload(:media)
|> Repo.one() do
nil ->
fallback
%SettingMedia{media: media} ->
media
%SettingMedia{} ->
fallback
end
end
@spec save_settings(String.t(), map()) :: {:ok, any} | {:error, any}
def save_settings(group, args) do
{medias, values} = Map.split(args, [:instance_logo, :instance_favicon, :default_picture])
Multi.new()
|> do_save_setting(group, args)
|> do_save_media_setting(group, medias)
|> do_save_value_setting(group, values)
|> Repo.transaction()
end
def clear_settings(group) do
Setting |> where([s], s.group == ^group) |> Repo.delete_all()
end
@spec do_save_value_setting(Ecto.Multi.t(), String.t(), map()) :: Ecto.Multi.t()
defp do_save_value_setting(transaction, _group, args) when args == %{}, do: transaction
@spec do_save_setting(Ecto.Multi.t(), String.t(), map()) :: Ecto.Multi.t()
defp do_save_setting(transaction, _group, args) when args == %{}, do: transaction
defp do_save_setting(transaction, group, args) do
defp do_save_value_setting(transaction, group, args) do
key = hd(Map.keys(args))
{val, rest} = Map.pop(args, key)
@ -150,7 +208,40 @@ defmodule Mobilizon.Admin do
conflict_target: [:group, :name]
)
do_save_setting(transaction, group, rest)
do_save_value_setting(transaction, group, rest)
end
@spec do_save_media_setting(Ecto.Multi.t(), String.t(), map()) :: Ecto.Multi.t()
defp do_save_media_setting(transaction, _group, args) when args == %{}, do: transaction
defp do_save_media_setting(transaction, group, args) do
key = hd(Map.keys(args))
{val, rest} = Map.pop(args, key)
transaction =
case val do
val ->
Multi.insert(
transaction,
key,
SettingMedia.changeset(%SettingMedia{}, %{
group: group,
name: Atom.to_string(key),
media: val
}),
on_conflict: :replace_all,
conflict_target: [:group, :name]
)
end
do_save_media_setting(transaction, group, rest)
end
def clear_settings(group) do
Multi.new()
|> Multi.delete_all(:settings, Setting |> where([s], s.group == ^group))
|> Multi.delete_all(:settings_medias, SettingMedia |> where([s], s.group == ^group))
|> Repo.transaction()
end
@spec convert_to_string(any()) :: String.t()

View file

@ -4,6 +4,7 @@ defmodule Mobilizon.Admin.Setting do
"""
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
@required_attrs [:group, :name]
@optional_attrs [:value]
@ -32,3 +33,93 @@ defmodule Mobilizon.Admin.Setting do
|> unique_constraint(:group, name: :admin_settings_group_name_index)
end
end
defmodule Mobilizon.Admin.SettingMedia do
@moduledoc """
A Key-Value settings table for media settings
"""
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Mobilizon.Federation.ActivityPub.Relay
alias Mobilizon.Medias
alias Mobilizon.Medias.Media
alias Mobilizon.Storage.Repo
@required_attrs [:group, :name]
@type t :: %{
group: String.t(),
name: String.t(),
media: Media.t()
}
schema "admin_settings_medias" do
field(:group, :string)
field(:name, :string)
belongs_to(:media, Media, on_replace: :delete)
timestamps()
end
@doc false
@spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t()
def changeset(setting_media, attrs) do
setting_media
|> Repo.preload(:media)
|> cast(attrs, @required_attrs)
|> put_media(attrs)
|> validate_required(@required_attrs)
|> unique_constraint(:group, name: :admin_settings_medias_group_name_index)
end
# # In case the provided media is an existing one
@spec put_media(Changeset.t(), map) :: Changeset.t()
defp put_media(%Changeset{} = changeset, %{media: %{media_id: id}}) do
%Media{} = media = Medias.get_media!(id)
put_assoc(changeset, :media, media)
end
# In case it's a new media
defp put_media(%Changeset{} = changeset, %{media: %{media: media}}) do
{:ok, media} = upload_media(media)
put_assoc(changeset, :media, media)
end
# In case there is no media
defp put_media(%Changeset{} = changeset, _media) do
put_assoc(changeset, :media, nil)
end
import Mobilizon.Web.Gettext
@spec upload_media(map) :: {:ok, Media.t()} | {:error, any}
defp upload_media(%{file: %Plug.Upload{} = file} = args) do
with {:ok,
%{
name: _name,
url: url,
content_type: content_type,
size: size
} = uploaded} <-
Mobilizon.Web.Upload.store(file),
args <-
args
|> Map.put(:url, url)
|> Map.put(:size, size)
|> Map.put(:content_type, content_type),
{:ok, media = %Media{}} <-
Medias.create_media(%{
file: args,
actor_id: Map.get(args, :actor_id, Relay.get_actor().id),
metadata: Map.take(uploaded, [:width, :height, :blurhash])
}) do
{:ok, media}
else
{:error, :mime_type_not_allowed} ->
{:error, dgettext("errors", "File doesn't have an allowed MIME type.")}
error ->
{:error, error}
end
end
end

View file

@ -4,7 +4,8 @@ defmodule Mobilizon.Config do
"""
alias Mobilizon.Actors
alias Mobilizon.Admin.Setting
alias Mobilizon.Admin
alias Mobilizon.Medias.Media
alias Mobilizon.Service.GitStatus
require Logger
import Mobilizon.Service.Export.Participants.Common, only: [enabled_formats: 0]
@ -29,56 +30,18 @@ defmodule Mobilizon.Config do
@spec instance_config :: mobilizon_config
def instance_config, do: Application.get_env(:mobilizon, :instance)
@spec db_instance_config :: list(Setting.t())
def db_instance_config, do: Mobilizon.Admin.get_all_admin_settings()
@spec config_cache :: map()
def config_cache do
case Cachex.fetch(:config, :all_db_config, fn _key ->
value =
Enum.reduce(
Mobilizon.Admin.get_all_admin_settings(),
%{},
&arrange_values/2
)
{:commit, value}
end) do
case Cachex.fetch(
:config,
:all_db_config,
fn _key -> {:commit, Admin.get_all_admin_settings()} end
) do
{status, value} when status in [:ok, :commit] -> value
_err -> %{}
end
end
@spec arrange_values(Setting.t(), map()) :: map()
defp arrange_values(setting, acc) do
{_, new_data} =
Map.get_and_update(acc, setting.group, fn current_value ->
new_value = current_value || %{}
{current_value, Map.put(new_value, setting.name, process_value(setting.value))}
end)
new_data
end
@spec process_value(String.t() | nil) :: any()
defp process_value(nil), do: nil
defp process_value(""), do: nil
defp process_value(value) do
case Jason.decode(value) do
{:ok, val} ->
val
{:error, _} ->
case value do
"true" -> true
"false" -> false
value -> value
end
end
end
@spec config_cached_value(String.t(), String.t(), String.t()) :: any()
def config_cached_value(group, name, fallback \\ nil) do
config_cache()
@ -115,10 +78,23 @@ defmodule Mobilizon.Config do
@spec instance_slogan :: String.t() | nil
def instance_slogan, do: config_cached_value("instance", "instance_slogan")
@spec instance_logo :: Media.t() | nil
def instance_logo, do: config_cached_value("instance", "instance_logo")
@spec instance_favicon :: Media.t() | nil
def instance_favicon, do: config_cached_value("instance", "instance_favicon")
@spec default_picture :: Media.t() | nil
def default_picture, do: config_cached_value("instance", "default_picture")
@spec primary_color :: Media.t() | nil
def primary_color, do: config_cached_value("instance", "primary_color")
@spec secondary_color :: Media.t() | nil
def secondary_color, do: config_cached_value("instance", "secondary_color")
@spec contact :: String.t() | nil
def contact do
config_cached_value("instance", "contact")
end
def contact, do: config_cached_value("instance", "contact")
@spec instance_terms(String.t()) :: String.t()
def instance_terms(locale \\ "en") do
@ -202,6 +178,9 @@ defmodule Mobilizon.Config do
@spec instance_demo_mode? :: boolean
def instance_demo_mode?, do: to_boolean(instance_config()[:demo])
@spec instance_long_events? :: boolean
def instance_long_events?, do: instance_config()[:duration_of_long_event] > 0
@spec instance_repository :: String.t()
def instance_repository, do: instance_config()[:repository]
@ -470,6 +449,9 @@ defmodule Mobilizon.Config do
instance_slogan: instance_slogan(),
registrations_open: instance_registrations_open?(),
contact: contact(),
primary_color: primary_color(),
secondary_color: secondary_color(),
instance_logo: instance_logo(),
instance_terms: instance_terms(),
instance_terms_type: instance_terms_type(),
instance_terms_url: instance_terms_url(),

View file

@ -25,6 +25,7 @@ defmodule Mobilizon.Events.EventOptions do
show_participation_price: boolean,
offers: [EventOffer.t()],
participation_condition: [EventParticipationCondition.t()],
hide_number_of_participants: boolean,
show_start_time: boolean,
show_end_time: boolean,
timezone: String.t() | nil,
@ -41,6 +42,7 @@ defmodule Mobilizon.Events.EventOptions do
:program,
:comment_moderation,
:show_participation_price,
:hide_number_of_participants,
:show_start_time,
:show_end_time,
:timezone,
@ -59,6 +61,7 @@ defmodule Mobilizon.Events.EventOptions do
field(:program, :string)
field(:comment_moderation, CommentModeration)
field(:show_participation_price, :boolean)
field(:hide_number_of_participants, :boolean, default: false)
field(:show_start_time, :boolean, default: true)
field(:show_end_time, :boolean, default: true)
field(:timezone, :string)

View file

@ -16,6 +16,7 @@ defmodule Mobilizon.Events do
alias Mobilizon.Actors.{Actor, Follower}
alias Mobilizon.Addresses.Address
alias Mobilizon.Config
alias Mobilizon.Events.{
Event,
@ -571,6 +572,7 @@ defmodule Mobilizon.Events do
|> events_for_search_query()
|> events_for_begins_on(Map.get(args, :begins_on, DateTime.utc_now()))
|> events_for_ends_on(Map.get(args, :ends_on))
|> events_for_longevents(args)
|> events_for_category(args)
|> events_for_categories(args)
|> events_for_languages(args)
@ -1377,6 +1379,38 @@ defmodule Mobilizon.Events do
end
end
@spec events_for_longevents(Ecto.Queryable.t(), map()) :: Ecto.Query.t()
defp events_for_longevents(query, args) do
duration = Config.get([:instance, :duration_of_long_event], 0)
if duration <= 0 do
query
else
longevents = Map.get(args, :longevents)
case longevents do
nil ->
query
true ->
where(
query,
[q],
not is_nil(q.ends_on) and
q.ends_on > fragment("? + '1 days'::interval * ?", q.begins_on, ^duration)
)
false ->
where(
query,
[q],
is_nil(q.ends_on) or
q.ends_on <= fragment("? + '1 days'::interval * ?", q.begins_on, ^duration)
)
end
end
end
@spec events_for_category(Ecto.Queryable.t(), map()) :: Ecto.Query.t()
defp events_for_category(query, %{category: category}) when is_valid_string(category) do
where(query, [q], q.category == ^category)

View file

@ -185,7 +185,8 @@ defmodule Mobilizon.Medias do
[from: "events_medias", param: "media_id"],
[from: "posts", param: "picture_id"],
[from: "posts_medias", param: "media_id"],
[from: "comments_medias", param: "media_id"]
[from: "comments_medias", param: "media_id"],
[from: "admin_settings_medias", param: "media_id"]
]
|> Enum.map_join(" UNION ", fn [from: from, param: param] ->
"SELECT 1 FROM #{from} WHERE #{from}.#{param} = m0.id"

View file

@ -0,0 +1,44 @@
defmodule Mobilizon.Service.Geospatial.Hat do
@moduledoc """
Hat backend.
"""
alias Mobilizon.Addresses.Address
alias Mobilizon.Service.Geospatial.Addok
alias Mobilizon.Service.Geospatial.Nominatim
alias Mobilizon.Service.Geospatial.Provider
import Mobilizon.Service.Geospatial.Provider, only: [endpoint: 1]
require Logger
@behaviour Provider
@impl Provider
@doc """
Hat implementation for `c:Mobilizon.Service.Geospatial.Provider.geocode/3`.
"""
@spec geocode(String.t(), keyword()) :: list(Address.t())
def geocode(lon, lat, options \\ []) do
tasks = [
Task.async(fn -> Addok.geocode(lon, lat, options) end),
Task.async(fn -> Nominatim.geocode(lon, lat, options) end)
]
[addrlist1, addrlist2] = Task.await_many(tasks, 12_000)
addrlist2 ++ addrlist1
end
@impl Provider
@doc """
Hat implementation for `c:Mobilizon.Service.Geospatial.Provider.search/2`.
"""
@spec search(String.t(), keyword()) :: list(Address.t())
def search(q, options \\ []) do
tasks = [
Task.async(fn -> Addok.search(q, options) end),
Task.async(fn -> Nominatim.search(q, options) end)
]
[addrlist1, addrlist2] = Task.await_many(tasks, 12_000)
addrlist2 ++ addrlist1
end
end

View file

@ -0,0 +1,58 @@
defmodule Mobilizon.Web.ManifestController do
use Mobilizon.Web, :controller
alias Mobilizon.Config
alias Mobilizon.Medias.Media
@spec manifest(Plug.Conn.t(), any) :: Plug.Conn.t()
def manifest(conn, _params) do
favicons =
case Config.instance_favicon() do
%Media{file: %{url: url}, metadata: metadata} ->
[
Map.merge(
%{
src: url
},
case metadata do
%{width: width} -> %{sizes: "#{width}x#{width}"}
_ -> %{}
end
)
]
_ ->
[
%{
src: "./img/icons/android-chrome-512x512.png",
sizes: "512x512",
type: "image/png"
},
%{
src: "./img/icons/android-chrome-192x192.png",
sizes: "192x192",
type: "image/png"
}
]
end
json(conn, %{
name: Config.instance_name(),
start_url: "/",
scope: "/",
display: "standalone",
background_color: "#ffffff",
theme_color: "#ffd599",
orientation: "portrait-primary",
icons: favicons
})
end
@spec favicon(Plug.Conn.t(), any) :: Plug.Conn.t()
def favicon(conn, _params) do
case Config.instance_favicon() do
%Media{file: %{url: url}} -> redirect(conn, external: url)
_ -> redirect(conn, to: "/img/icons/favicon.ico")
end
end
end

View file

@ -18,6 +18,8 @@ defmodule Mobilizon.Web.PageController do
defdelegate my_events(conn, params), to: PageController, as: :index
@spec create_event(Plug.Conn.t(), any) :: Plug.Conn.t()
defdelegate create_event(conn, params), to: PageController, as: :index
@spec calendar(Plug.Conn.t(), any) :: Plug.Conn.t()
defdelegate calendar(conn, params), to: PageController, as: :index
@spec list_events(Plug.Conn.t(), any) :: Plug.Conn.t()
defdelegate list_events(conn, params), to: PageController, as: :index
@spec edit_event(Plug.Conn.t(), any) :: Plug.Conn.t()

View file

@ -18,8 +18,7 @@ defmodule Mobilizon.Web do
"""
def static_paths,
do:
~w(index.html manifest.json manifest.webmanifest service-worker.js css fonts img js favicon.ico robots.txt assets)
do: ~w(index.html service-worker.js css fonts img js robots.txt assets)
def controller do
quote do

View file

@ -77,7 +77,7 @@ defmodule Mobilizon.Web.Plugs.HTTPSecurityPlug do
# unsafe-eval is because of JS issues with regenerator-runtime
@script_src "script-src 'self' 'unsafe-eval' "
@style_src "style-src 'self' "
@font_src "font-src 'self' "
@font_src "font-src 'self' data: "
@spec csp_string(Keyword.t()) :: String.t()
defp csp_string(options) do
@ -117,6 +117,8 @@ defmodule Mobilizon.Web.Plugs.HTTPSecurityPlug do
style_src = [style_src] ++ [get_csp_config(:style_src, options)]
style_src = [style_src] ++ ["'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='"]
font_src = [@font_src] ++ [get_csp_config(:font_src, options)]
frame_src = build_csp_field(:frame_src, options)

View file

@ -113,6 +113,12 @@ defmodule Mobilizon.Web.Router do
get("/nodeinfo/:version", NodeInfoController, :nodeinfo)
end
scope "/", Mobilizon.Web do
get("/manifest.webmanifest", ManifestController, :manifest)
get("/manifest.json", ManifestController, :manifest)
get("/favicon.ico", ManifestController, :favicon)
end
scope "/", Mobilizon.Web do
pipe_through(:activity_pub_and_html)
pipe_through(:activity_pub_signature)
@ -120,6 +126,7 @@ defmodule Mobilizon.Web.Router do
get("/@:name", PageController, :actor)
get("/events/me", PageController, :my_events)
get("/events/create", PageController, :create_event)
get("/events/calendar", PageController, :calendar)
get("/events/:uuid", PageController, :event)
get("/comments/:uuid", PageController, :comment)
get("/resource/:uuid", PageController, :resource)
@ -188,6 +195,7 @@ defmodule Mobilizon.Web.Router do
get("/events/create", PageController, :create_event)
get("/events/list", PageController, :list_events)
get("/events/me", PageController, :my_events)
get("/events/calendar", PageController, :calendar)
get("/events/:uuid/edit", PageController, :edit_event)
# This is a hack to ease link generation into emails

View file

@ -54,7 +54,7 @@
<p>
<%= pgettext(
"terms",
"When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
"When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
)
|> raw %>
</p>

View file

@ -4,15 +4,16 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png" sizes="152x152" />
<link rel="apple-touch-icon" href={favicon_url()} sizes={favicon_sizes()} />
<link rel="icon" href={favicon_url()} sizes={favicon_sizes()} />
<link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color={theme_color()} />
<link rel="manifest" href="/manifest.webmanifest" />
<meta name="theme-color" content={theme_color()} />
<script>
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark')
document.documentElement.classList.add('dark')
} else {
document.documentElement.classList.remove('dark')
document.documentElement.classList.remove('dark')
}
</script>
<%= if root?(assigns) do %>
@ -24,6 +25,7 @@
<%= Vite.vite_client() %>
<%= Vite.vite_snippet("src/main.ts") %>
</head>
<body>
<noscript>
<strong>

View file

@ -6,6 +6,7 @@ defmodule Mobilizon.Web.PageView do
use Mobilizon.Web, :view
alias Mobilizon.Actors.Actor
alias Mobilizon.Config
alias Mobilizon.Discussions.{Comment, Discussion}
alias Mobilizon.Events.Event
alias Mobilizon.Posts.Post
@ -91,4 +92,27 @@ defmodule Mobilizon.Web.PageView do
def root?(assigns) do
assigns |> Map.get(:conn, %{request_path: "/"}) |> Map.get(:request_path, "/") == "/"
end
defp favicon do
case Config.instance_favicon() do
%{file: %{url: url}, metadata: metadata} ->
%{
src: url,
sizes:
case metadata do
%{width: width} -> "#{width}x#{width}"
_ -> "any"
end
}
_ ->
%{
src: "/img/icons/apple-touch-icon-152x152.png",
sizes: "152x152"
}
end
end
def favicon_url, do: Map.get(favicon(), :src)
def favicon_sizes, do: Map.get(favicon(), :sizes)
end

View file

@ -1,7 +1,7 @@
defmodule Mobilizon.Mixfile do
use Mix.Project
@version "4.1.0-alpha.1"
@version "5.0.0-beta.1"
def project do
[
@ -185,7 +185,7 @@ defmodule Mobilizon.Mixfile do
{:floki, "~> 0.31"},
{:ip_reserved, "~> 0.1.0"},
{:fast_sanitize, "~> 0.1"},
{:ueberauth, "0.10.7", override: true},
{:ueberauth, "0.10.8", override: true},
{:ueberauth_twitter, "~> 0.4"},
{:ueberauth_discord, "~> 0.7"},
{:ueberauth_github, "~> 0.8.1"},

View file

@ -4,7 +4,7 @@
"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, "4.0.0", "7f6cd2e4a93a37f61d58a367d82f830ad9527082ff3c820b8197a8a736648941", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "f9da27cf060c9ea61b1bd47837a28d7e48a8f6fa13a745e252556c14f9132c7f"},
"atomex": {:hex, :atomex, "0.5.1", "706a8241fd6d1719b27a77b6d1192d2f85e6ecc78e6eadab29207d8cb9bb7ae5", [:mix], [{:xml_builder, "~> 2.1", [hex: :xml_builder, repo: "hexpm", optional: false]}], "hexpm", "6248891b5fcab8503982e090eedeeadb757a6311c2ef2e2998b874f7d319ab3f"},
"bandit": {:hex, :bandit, "1.2.0", "2b5784909cc25b2514868055ff27458cdc63314514b90d86448ff91d18bece80", [:mix], [{:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "05688b883d87cc3b32991517a61e8c2ce8ee2dd6aa6eb73635426002a6661491"},
"bandit": {:hex, :bandit, "1.2.3", "a98d664a96fec23b68e776062296d76a94b4459795b38209f4ae89cb4225709c", [:mix], [{:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "3e29150245a9b5f56944434e5240966e75c917dad248f689ab589b32187a81af"},
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
"cachex": {:hex, :cachex, "3.6.0", "14a1bfbeee060dd9bec25a5b6f4e4691e3670ebda28c8ba2884b12fe30b36bf8", [: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", "ebf24e373883bc8e0c8d894a63bbe102ae13d918f790121f5cfe6e485cc8e2e2"},
"castore": {:hex, :castore, "1.0.5", "9eeebb394cc9a0f3ae56b813459f990abb0a3dedee1be6b27fdb50301930502f", [:mix], [], "hexpm", "8d7c597c3e4a64c395980882d4bca3cebb8d74197c590dc272cfd3b6a6310578"},
@ -14,7 +14,7 @@
"combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"},
"comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"},
"cors_plug": {:hex, :cors_plug, "3.0.3", "7c3ac52b39624bc616db2e937c282f3f623f25f8d550068b6710e58d04a0e330", [:mix], [{:plug, "~> 1.13", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "3f2d759e8c272ed3835fab2ef11b46bddab8c1ab9528167bd463b6452edf830d"},
"credo": {:hex, :credo, "1.7.4", "68ca5cf89071511c12fd9919eb84e388d231121988f6932756596195ccf7fd35", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "9cf776d062c78bbe0f0de1ecaee183f18f2c3ec591326107989b054b7dddefc2"},
"credo": {:hex, :credo, "1.7.5", "643213503b1c766ec0496d828c90c424471ea54da77c8a168c725686377b9545", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "f799e9b5cd1891577d8c773d245668aa74a2fcd15eb277f51a0131690ebfb3fd"},
"credo_code_climate": {:hex, :credo_code_climate, "0.1.0", "1c4efbd11cb0244622ed5f09246b9afbbf796316ce03e78f67db6d81271d2978", [:mix], [{:credo, "~> 1.5", [hex: :credo, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "75529fe38056f4e229821d604758282838b8397c82e2c12e409fda16b16821ca"},
"dataloader": {:hex, :dataloader, "2.0.0", "49b42d60b9bb06d761a71d7b034c4b34787957e713d4fae15387a25fcd639112", [:mix], [{:ecto, ">= 3.4.3 and < 4.0.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:opentelemetry_process_propagator, "~> 0.2.1", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "09d61781b76ce216e395cdbc883ff00d00f46a503e215c22722dba82507dfef0"},
"db_connection": {:hex, :db_connection, "2.6.0", "77d835c472b5b67fc4f29556dee74bf511bbafecdcaf98c27d27fa5918152086", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c2f992d15725e721ec7fbc1189d4ecdb8afef76648c746a8e1cad35e3b8a35f3"},
@ -50,13 +50,13 @@
"excoveralls": {:hex, :excoveralls, "0.18.0", "b92497e69465dc51bc37a6422226ee690ab437e4c06877e836f1c18daeb35da9", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "1109bb911f3cb583401760be49c02cbbd16aed66ea9509fc5479335d284da60b"},
"exgravatar": {:hex, :exgravatar, "2.0.3", "2349709832ee535f826f48db98cddd294ae62b01acb44d539a16419bd8ebc3e5", [:mix], [], "hexpm", "aca18ff9bd8991d3be3e5446d3bdefc051be084c1ffc9ab2d43b3e65339300e1"},
"exkismet": {:git, "https://github.com/tcitworld/exkismet.git", "8b5485fde00fafbde20f315bec387a77f7358334", []},
"expo": {:hex, :expo, "0.5.1", "249e826a897cac48f591deba863b26c16682b43711dd15ee86b92f25eafd96d9", [:mix], [], "hexpm", "68a4233b0658a3d12ee00d27d37d856b1ba48607e7ce20fd376958d0ba6ce92b"},
"expo": {:hex, :expo, "0.5.2", "beba786aab8e3c5431813d7a44b828e7b922bfa431d6bfbada0904535342efe2", [:mix], [], "hexpm", "8c9bfa06ca017c9cb4020fabe980bc7fdb1aaec059fd004c2ab3bff03b1c599c"},
"export": {:hex, :export, "0.1.1", "6dfd268b0692428f89b9285859a2dc02b6dcd2e8fdfbca34ac6e6a331351df91", [:mix], [{:erlport, "~> 0.9", [hex: :erlport, repo: "hexpm", optional: false]}], "hexpm", "3da7444ff4053f1824352f4bdb13fbd2c28c93c2011786fb686b649fdca1021f"},
"fast_html": {:hex, :fast_html, "2.3.0", "08c1d8ead840dd3060ba02c761bed9f37f456a1ddfe30bcdcfee8f651cec06a6", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}], "hexpm", "f18e3c7668f82d3ae0b15f48d48feeb257e28aa5ab1b0dbf781c7312e5da029d"},
"fast_sanitize": {:hex, :fast_sanitize, "0.2.3", "67b93dfb34e302bef49fec3aaab74951e0f0602fd9fa99085987af05bd91c7a5", [:mix], [{:fast_html, "~> 2.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "e8ad286d10d0386e15d67d0ee125245ebcfbc7d7290b08712ba9013c8c5e56e2"},
"file_info": {:hex, :file_info, "0.0.4", "2e0e77f211e833f38ead22cb29ce53761d457d80b3ffe0ffe0eb93880b0963b2", [:mix], [{:mimetype_parser, "~> 0.1.2", [hex: :mimetype_parser, repo: "hexpm", optional: false]}], "hexpm", "50e7ad01c2c8b9339010675fe4dc4a113b8d6ca7eddce24d1d74fd0e762781a5"},
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
"floki": {:hex, :floki, "0.35.3", "0c8c6234aa71cb2b069cf801e8f8f30f8d096eb452c3dae2ccc409510ec32720", [:mix], [], "hexpm", "6d9f07f3fc76599f3b66c39f4a81ac62c8f4d9631140268db92aacad5d0e56d4"},
"floki": {:hex, :floki, "0.35.4", "cc947b446024732c07274ac656600c5c4dc014caa1f8fb2dfff93d275b83890d", [:mix], [], "hexpm", "27fa185d3469bd8fc5947ef0f8d5c4e47f0af02eb6b070b63c868f69e3af0204"},
"gen_smtp": {:hex, :gen_smtp, "1.2.0", "9cfc75c72a8821588b9b9fe947ae5ab2aed95a052b81237e0928633a13276fd3", [:rebar3], [{:ranch, ">= 1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "5ee0375680bca8f20c4d85f58c2894441443a743355430ff33a783fe03296779"},
"geo": {:hex, :geo, "3.6.0", "00c9c6338579f67e91cd5950af4ae2eb25cdce0c3398718c232539f61625d0bd", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "1dbdebf617183b54bc3c8ad7a36531a9a76ada8ca93f75f573b0ae94006168da"},
"geo_postgis": {:hex, :geo_postgis, "3.5.0", "e3675b6276b8c2166dc20a6fa9d992eb73c665de2b09b666d09c7824dc8a8300", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:geo, "~> 3.5", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0 or ~> 4.0 or ~> 5.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "0bebc5b00f8b11835066bd6213fbeeec03704b4a1c206920b81c1ec2201d185f"},
@ -68,7 +68,7 @@
"guardian_db": {:hex, :guardian_db, "3.0.0", "c42902e3f1af1ba1e2d0c10913b926a1421f3a7e38eb4fc382b715c17489abdb", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.1", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:guardian, "~> 1.0 or ~> 2.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "9c2ec4278efa34f9f1cc6ba795e552d41fdc7ffba5319d67eeb533b89392d183"},
"guardian_phoenix": {:hex, :guardian_phoenix, "2.0.1", "89a817265af09a6ddf7cb1e77f17ffca90cea2db10ff888375ef34502b2731b1", [:mix], [{:guardian, "~> 2.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.3", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "21f439246715192b231f228680465d1ed5fbdf01555a4a3b17165532f5f9a08c"},
"hackney": {:hex, :hackney, "1.20.1", "8d97aec62ddddd757d128bfd1df6c5861093419f8f7a4223823537bad5d064e2", [:rebar3], [{:certifi, "~> 2.12.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "fe9094e5f1a2a2c0a7d10918fee36bfec0ec2a979994cff8cfe8058cd9af38e3"},
"hammer": {:hex, :hammer, "6.2.0", "956e578f210ee67f7801caf7109b0e1145d2dad77ed5a0e5c0041a04739ede36", [:mix], [{:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}], "hexpm", "1431a30e1f9c816e0fc58d2587de2d5f4c709b74bf81be77515dc902e35bb3a7"},
"hammer": {:hex, :hammer, "6.2.1", "5ae9c33e3dceaeb42de0db46bf505bd9c35f259c8defb03390cd7556fea67ee2", [:mix], [{:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}], "hexpm", "b9476d0c13883d2dc0cc72e786bac6ac28911fba7cc2e04b70ce6a6d9c4b2bdc"},
"haversine": {:hex, :haversine, "0.1.0", "14240e90dae07c9459f538d12a811492f655d95fc68f999403503b4f6c4ec522", [:mix], [], "hexpm", "54dc48e895bc18a59437a37026c873634e17b648a64cb87bfafb96f64d607060"},
"hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"},
"html_entities": {:hex, :html_entities, "0.5.2", "9e47e70598da7de2a9ff6af8758399251db6dbb7eebe2b013f2bbd2515895c3c", [:mix], [], "hexpm", "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"},
@ -85,7 +85,7 @@
"linkify": {:hex, :linkify, "0.5.3", "5f8143d8f61f5ff08d3aeeff47ef6509492b4948d8f08007fbf66e4d2246a7f2", [:mix], [], "hexpm", "3ef35a1377d47c25506e07c1c005ea9d38d700699d92ee92825f024434258177"},
"makeup": {:hex, :makeup, "1.1.1", "fa0bc768698053b2b3869fa8a62616501ff9d11a562f3ce39580d60860c3a55e", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "5dc62fbdd0de44de194898b6710692490be74baa02d9d108bc29f007783b0b48"},
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.4", "29563475afa9b8a2add1b7a9c8fb68d06ca7737648f28398e04461f008b69521", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f4ed47ecda66de70dd817698a703f8816daa91272e7e45812469498614ae8b29"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.5", "e0ff5a7c708dda34311f7522a8758e23bfcd7d8d8068dc312b5eb41c6fd76eba", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "94d2e986428585a21516d7d7149781480013c56e30c6a233534bedf38867a59a"},
"meck": {:hex, :meck, "0.9.2", "85ccbab053f1db86c7ca240e9fc718170ee5bda03810a6292b5306bf31bae5f5", [:rebar3], [], "hexpm", "81344f561357dc40a8344afa53767c32669153355b626ea9fcbc8da6b3045826"},
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"},
"mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"},
@ -101,14 +101,14 @@
"nimble_pool": {:hex, :nimble_pool, "0.2.6", "91f2f4c357da4c4a0a548286c84a3a28004f68f05609b4534526871a22053cde", [:mix], [], "hexpm", "1c715055095d3f2705c4e236c18b618420a35490da94149ff8b580a2144f653f"},
"oauth2": {:hex, :oauth2, "2.1.0", "beb657f393814a3a7a8a15bd5e5776ecae341fd344df425342a3b6f1904c2989", [:mix], [{:tesla, "~> 1.5", [hex: :tesla, repo: "hexpm", optional: false]}], "hexpm", "8ac07f85b3307dd1acfeb0ec852f64161b22f57d0ce0c15e616a1dfc8ebe2b41"},
"oauther": {:hex, :oauther, "1.3.0", "82b399607f0ca9d01c640438b34d74ebd9e4acd716508f868e864537ecdb1f76", [:mix], [], "hexpm", "78eb888ea875c72ca27b0864a6f550bc6ee84f2eeca37b093d3d833fbcaec04e"},
"oban": {:hex, :oban, "2.17.3", "ddfd5710aadcd550d2e174c8d73ce5f1865601418cf54a91775f20443fb832b7", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "452eada8bfe0d0fefd0740ab5fa8cf3ef6c375df0b4a3c3805d179022a04738a"},
"oban": {:hex, :oban, "2.17.5", "3d1bf04ac701ad3c0241eb1f2eb94ea6b8f2f2a3f99ea828847377d2dd256cfe", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fd3ccbbfdbb2bc77107c8790946f9821a831ed0720688485ee6adcd7863886cf"},
"paasaa": {:hex, :paasaa, "0.6.0", "07c8ed81010caa25db351d474f0c053072c809821c60f9646f7b1547bec52f6d", [:mix], [], "hexpm", "732ddfc21bac0831edb26aec468af3ec2b8997d74f6209810b1cc53199c29f2e"},
"parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"},
"phoenix": {:hex, :phoenix, "1.7.11", "1d88fc6b05ab0c735b250932c4e6e33bfa1c186f76dcf623d8dd52f07d6379c7", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "b1ec57f2e40316b306708fe59b92a16b9f6f4bf50ccfa41aa8c7feb79e0ec02a"},
"phoenix_ecto": {:hex, :phoenix_ecto, "4.4.3", "86e9878f833829c3f66da03d75254c155d91d72a201eb56ae83482328dc7ca93", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "d36c401206f3011fefd63d04e8ef626ec8791975d9d107f9a0817d426f61ac07"},
"phoenix_html": {:hex, :phoenix_html, "3.3.3", "380b8fb45912b5638d2f1d925a3771b4516b9a78587249cabe394e0a5d579dc9", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "923ebe6fec6e2e3b3e569dfbdc6560de932cd54b000ada0208b5f45024bdd76c"},
"phoenix_live_reload": {:hex, :phoenix_live_reload, "1.4.1", "2aff698f5e47369decde4357ba91fc9c37c6487a512b41732818f2204a8ef1d3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "9bffb834e7ddf08467fe54ae58b5785507aaba6255568ae22b4d46e2bb3615ab"},
"phoenix_live_view": {:hex, :phoenix_live_view, "0.20.5", "6207acfdc6a824327d8d55c59b9c3398c0ddeac8935501ac0686921ad30482f3", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2c4d28e91f531a48e24a0ae2b24aad3d56ad122ddd424d2e220070dd9930f0c4"},
"phoenix_live_view": {:hex, :phoenix_live_view, "0.20.10", "a790858cf9b63815bb93d1748e26c73f0c7f09f20873562f4f307dd52b0ca32f", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "daa17b3fbdfd6347aaade4db01a5dd24d23af0f4344e2e24934e8adfb4a11607"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
"phoenix_swoosh": {:hex, :phoenix_swoosh, "1.2.1", "b74ccaa8046fbc388a62134360ee7d9742d5a8ae74063f34eb050279de7a99e1", [:mix], [{:finch, "~> 0.8", [hex: :finch, repo: "hexpm", optional: true]}, {:hackney, "~> 1.10", [hex: :hackney, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_html, "~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_view, "~> 1.0 or ~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:swoosh, "~> 1.5", [hex: :swoosh, repo: "hexpm", optional: false]}], "hexpm", "4000eeba3f9d7d1a6bf56d2bd56733d5cadf41a7f0d8ffe5bb67e7d667e204a2"},
"phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"},
@ -132,15 +132,15 @@
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"},
"struct_access": {:hex, :struct_access, "1.1.2", "a42e6ceedd9b9ea090ee94a6da089d56e16f374dbbc010c3eebdf8be17df286f", [:mix], [], "hexpm", "e4c411dcc0226081b95709909551fc92b8feb1a3476108348ea7e3f6c12e586a"},
"sweet_xml": {:hex, :sweet_xml, "0.7.4", "a8b7e1ce7ecd775c7e8a65d501bc2cd933bff3a9c41ab763f5105688ef485d08", [:mix], [], "hexpm", "e7c4b0bdbf460c928234951def54fe87edf1a170f6896675443279e2dbeba167"},
"swoosh": {:hex, :swoosh, "1.15.2", "490ea85a98e8fb5178c07039e0d8519839e38127724a58947a668c00db7574ee", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.4 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9f7739c02f6c7c0ca82ee397f3bfe0465dbe4c8a65372ac2a5584bf147dd5831"},
"swoosh": {:hex, :swoosh, "1.15.3", "5c3f05b6e4e08cd4f75ad7e90db3c2b73c9d9de00503cce36a694951c2d69185", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.4 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "97a667b96ca8cc48a4679f6cd1f40a36d8701cf052587298473614caa70f164a"},
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
"tesla": {:hex, :tesla, "1.8.0", "d511a4f5c5e42538d97eef7c40ec4f3e44effdc5068206f42ed859e09e51d1fd", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.13", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, ">= 1.0.0", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.2", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:msgpax, "~> 2.3", [hex: :msgpax, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "10501f360cd926a309501287470372af1a6e1cbed0f43949203a4c13300bc79f"},
"thousand_island": {:hex, :thousand_island, "1.3.2", "bc27f9afba6e1a676dd36507d42e429935a142cf5ee69b8e3f90bff1383943cd", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "0e085b93012cd1057b378fce40cbfbf381ff6d957a382bfdd5eca1a98eec2535"},
"thousand_island": {:hex, :thousand_island, "1.3.5", "6022b6338f1635b3d32406ff98d68b843ba73b3aa95cfc27154223244f3a6ca5", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2be6954916fdfe4756af3239fb6b6d75d0b8063b5df03ba76fd8a4c87849e180"},
"timex": {:hex, :timex, "3.7.11", "bb95cb4eb1d06e27346325de506bcc6c30f9c6dea40d1ebe390b262fad1862d1", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.20", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.1", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "8b9024f7efbabaf9bd7aa04f65cf8dcd7c9818ca5737677c7b76acbc6a94d1aa"},
"tls_certificate_check": {:hex, :tls_certificate_check, "1.21.0", "042ab2c0c860652bc5cf69c94e3a31f96676d14682e22ec7813bd173ceff1788", [:rebar3], [{:ssl_verify_fun, "~> 1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "6cee6cffc35a390840d48d463541d50746a7b0e421acaadb833cfc7961e490e7"},
"tz_world": {:hex, :tz_world, "1.3.2", "15d331ad1ff22735dfcc8c98bfc7b2a9fdc17f1f071e31e21cdafe2d9318a300", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:geo, "~> 1.0 or ~> 2.0 or ~> 3.3", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "d1a345e07b3378c4c902ad54fbd5d54c8c3dd55dba883b7407fe57bcec45ff2a"},
"tzdata": {:hex, :tzdata, "1.1.1", "20c8043476dfda8504952d00adac41c6eda23912278add38edc140ae0c5bcc46", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "a69cec8352eafcd2e198dea28a34113b60fdc6cb57eb5ad65c10292a6ba89787"},
"ueberauth": {:hex, :ueberauth, "0.10.7", "5a31cbe11e7ce5c7484d745dc9e1f11948e89662f8510d03c616de03df581ebd", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "0bccf73e2ffd6337971340832947ba232877aa8122dba4c95be9f729c8987377"},
"ueberauth": {:hex, :ueberauth, "0.10.8", "ba78fbcbb27d811a6cd06ad851793aaf7d27c3b30c9e95349c2c362b344cd8f0", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "f2d3172e52821375bccb8460e5fa5cb91cfd60b19b636b6e57e9759b6f8c10c1"},
"ueberauth_cas": {:hex, :ueberauth_cas, "2.3.1", "df45a1f2c5df8bc80191cbca4baeeed808d697702ec5ebe5bd5d5a264481752f", [:mix], [{:httpoison, "~> 1.8", [hex: :httpoison, repo: "hexpm", optional: false]}, {:sweet_xml, "~> 0.7", [hex: :sweet_xml, repo: "hexpm", optional: false]}, {:ueberauth, "~> 0.6", [hex: :ueberauth, repo: "hexpm", optional: false]}], "hexpm", "5068ae2b9e217c2f05aa9a67483a6531e21ba0be9a6f6c8749bb7fd1599be321"},
"ueberauth_discord": {:hex, :ueberauth_discord, "0.7.0", "463f6dfe1ed10a76739331ce8e1dd3600ab611f10524dd828eb3aa50e76e9d43", [:mix], [{:oauth2, "~> 1.0 or ~> 2.0", [hex: :oauth2, repo: "hexpm", optional: false]}, {:ueberauth, "~> 0.7", [hex: :ueberauth, repo: "hexpm", optional: false]}], "hexpm", "d6f98ef91abb4ddceada4b7acba470e0e68c4d2de9735ff2f24172a8e19896b4"},
"ueberauth_facebook": {:hex, :ueberauth_facebook, "0.10.0", "0d607fbd1b7c6e0449981571027d869c2d156b8ad20c42e3672346678c05ccf1", [:mix], [{:oauth2, "~> 1.0 or ~> 2.0", [hex: :oauth2, repo: "hexpm", optional: false]}, {:ueberauth, "~> 0.7", [hex: :ueberauth, repo: "hexpm", optional: false]}], "hexpm", "bf8ce5d66b1c50da8abff77e8086c1b710bdde63f4acaef19a651ba43a9537a8"},

1430
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{
"name": "mobilizon",
"version": "4.1.0-alpha.1",
"version": "5.0.0-beta.1",
"private": true,
"scripts": {
"dev": "vite",
@ -36,6 +36,10 @@
"@framasoft/socket-apollo-link": "^1.0.0",
"@oruga-ui/oruga-next": "^0.8.2",
"@oruga-ui/theme-oruga": "^0.2.0",
"@fullcalendar/core": "^6.1.10",
"@fullcalendar/daygrid": "^6.1.10",
"@fullcalendar/interaction": "^6.1.10",
"@fullcalendar/vue3": "^6.1.10",
"@sentry/tracing": "^7.1",
"@sentry/vue": "^7.1",
"@tiptap/core": "^2.0.0-beta.41",
@ -79,6 +83,7 @@
"graphql": "^16.8.1",
"graphql-tag": "^2.10.3",
"hammerjs": "^2.0.8",
"ical.js": "^1.5.0",
"intersection-observer": "^0.12.0",
"jwt-decode": "^4.0.0",
"leaflet": "^1.4.0",
@ -95,7 +100,7 @@
"tailwindcss": "^3",
"tippy.js": "^6.2.3",
"unfetch": "^5.0.0",
"vue": "3.4.16",
"vue": "^3.4.20",
"vue-i18n": "9",
"vue-material-design-icons": "^5.1.2",
"vue-matomo": "^4.1.0",
@ -142,7 +147,7 @@
"sass": "^1.34.1",
"typescript": "~5.3.2",
"vite": "^5.0.12",
"vite-plugin-pwa": "^0.17.0",
"vite-plugin-pwa": "^0.19.0",
"vitest": "^1.2.2",
"vue-i18n-extract": "^2.0.4",
"vue-router-mock": "^1.0.0"

View file

@ -214,7 +214,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -224,7 +224,7 @@ msgstr[1] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -216,7 +216,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -230,7 +230,7 @@ msgstr[5] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -317,7 +317,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@ -329,7 +329,7 @@ msgstr[5] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -383,7 +383,7 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
@ -394,7 +394,7 @@ msgstr[4] ""
msgstr[5] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@ -406,7 +406,7 @@ msgstr[5] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -776,7 +776,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1076,7 +1076,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1160,12 +1160,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1650,7 +1644,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2048,3 +2042,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -207,13 +207,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -647,7 +647,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -667,17 +667,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -964,7 +964,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1095,22 +1095,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1120,7 +1120,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1382,7 +1382,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1392,7 +1392,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1412,12 +1412,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -215,7 +215,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -226,7 +226,7 @@ msgstr[2] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -315,7 +315,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@ -324,7 +324,7 @@ msgstr[2] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -375,7 +375,7 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
@ -383,7 +383,7 @@ msgstr[1] ""
msgstr[2] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@ -392,7 +392,7 @@ msgstr[2] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -759,7 +759,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1056,7 +1056,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1140,12 +1140,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1630,7 +1624,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2025,3 +2019,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -181,13 +181,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -621,7 +621,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -641,17 +641,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -938,7 +938,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1069,22 +1069,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1094,7 +1094,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1356,7 +1356,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1366,7 +1366,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1386,12 +1386,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -222,7 +222,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -232,7 +232,7 @@ msgstr[1] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -358,7 +358,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon a %{instance}: s'ha canviat l'adreça de correu"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Una activitat planificada per avui"
@ -366,7 +366,7 @@ msgstr[1] "%{nb_events} activitats planificades avui"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Tens una activitat avui:"
@ -416,14 +416,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} t'ha convidat al grup %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Una activitat planificada per aquesta setmana"
msgstr[1] "%{nb_events} planificades per aquesta setmana"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Hi ha una soŀlicitud de participar a %{title} pendent de resoldre"
@ -433,7 +433,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Tens una activitat aquesta setmana:"
@ -925,7 +925,7 @@ msgstr "No ho facis servir més que proves, sisplau"
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1261,7 +1261,7 @@ msgstr ""
"L'equip de moderació de la teva instància ha decidit suspendre el grup "
"%{group_name} (%{group_address}). Ja no formes part del grup."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "El grup %{group} ha estat suspès a %{instance}"
@ -1375,12 +1375,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1876,7 +1870,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Tens una soŀlicitud de participació pendent de resoldre:"
@ -2283,3 +2277,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -182,13 +182,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -622,7 +622,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -642,17 +642,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -939,7 +939,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1070,22 +1070,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1095,7 +1095,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1357,7 +1357,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1367,7 +1367,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1387,12 +1387,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -224,7 +224,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Zobrazit jednu další aktivitu"
@ -235,7 +235,7 @@ msgstr[2] "Zobrazit %{count} dalších aktivit"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Došlo k aktivitě!"

View file

@ -355,7 +355,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon na %{instance}: e-mail změněn"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Na dnešek je naplánována jedna událost"
@ -364,7 +364,7 @@ msgstr[2] "%{nb_events} událostí plánovaných na dnešek"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Dnes máte jednu událost:"
@ -415,7 +415,7 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Byl/a jste pozván/a %{inviter} do skupiny %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Tento týden je naplánována jedna akce"
@ -423,7 +423,7 @@ msgstr[1] "%{nb_events} události plánované na tento týden"
msgstr[2] "%{nb_events} událostí plánovaných na tento týden"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Jeden požadavek na účast pro událost %{title} ke zpracování"
@ -436,7 +436,7 @@ msgstr[2] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Tento týden máte jednu událost:"
@ -932,7 +932,7 @@ msgstr "Nepoužívejte ji pro skutečné účely."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1278,7 +1278,7 @@ msgstr ""
"Moderátorský tým vaší instance se rozhodl pozastavit %{group_name} "
"(%{group_address}). Již nejste členem této skupiny."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Skupina %{group} byla pozastavena na %{instance}"
@ -1403,20 +1403,6 @@ msgstr ""
"Vyhrazujeme si právo tyto podmínky kdykoli změnit. Tyto podmínky můžeme "
"například změnit, pokud přijdeme s novou funkcí."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Když v tomto dokumentu říkáme \"my\", \"naše\" nebo \"nás\", máme na mysli "
"vlastníky, provozovatele a správce této instance Mobilizon. Software "
"Mobilizon je poskytován týmem přispěvatelů Mobilizonu, který je podporován "
"<a href=\"https://framasoft.org\">Framasoft</a>, francouzskou neziskovou "
"organizací prosazující svobodný software. Pokud to není výslovně uvedeno, je "
"tato instance Mobilizonu nezávislou službou využívající zdrojový kód "
"Mobilizonu. Více informací o této instanci najdete na stránce <a href=\"/"
"about/instance\">\"O této instanci\"</a>."
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1945,7 +1931,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2376,3 +2362,17 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Když v tomto dokumentu říkáme \"my\", \"naše\" nebo \"nás\", máme na mysli "
"vlastníky, provozovatele a správce této instance Mobilizon. Software "
"Mobilizon je poskytován týmem přispěvatelů Mobilizonu, který je podporován "
"<a href=\"https://framasoft.org\">Framasoft</a>, francouzskou neziskovou "
"organizací prosazující svobodný software. Pokud to není výslovně uvedeno, je "
"tato instance Mobilizonu nezávislou službou využívající zdrojový kód "
"Mobilizonu. Více informací o této instanci najdete na stránce <a href=\"/"
"about/instance\">\"O této instanci\"</a>."

View file

@ -190,13 +190,13 @@ msgstr "Registrace nejsou otevřeny"
msgid "The current password is invalid"
msgstr "Aktuální heslo je neplatné"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "Nový e-mail se nezdá být platný"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -635,7 +635,7 @@ msgstr "Do této skupiny nelze zvát"
msgid "You don't have permission to delete this token"
msgstr "Nemáte oprávnění tento token odstranit"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -656,19 +656,19 @@ msgstr "Chcete-li aktualizovat zprávu, musíte být přihlášeni a být moder
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Pro zobrazení zprávy musíte být přihlášeni a být moderátorem"
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr "Pro přístup k nastavení správce musíte být přihlášeni jako správce"
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Pro přístup ke statistikám ovládacího panelu musíte být přihlášeni jako "
"správce"
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -959,7 +959,7 @@ msgstr "Nepodařilo se opustit událost"
msgid "Failed to update the group"
msgstr "Nepodařilo se aktualizovat skupinu"
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1090,22 +1090,22 @@ msgstr "Chcete-li odebrat člena, musíte být přihlášeni"
msgid "Your email seems to be using an invalid format"
msgstr "Váš e-mail zřejmě používá nesprávný formát"
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr "Nelze potvrdit již potvrzeného uživatele"
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr "Zrušení potvrzení uživatelů není podporováno"
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "Nová role musí být jiná"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1116,7 +1116,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr "Profil nebo skupina s tímto názvem již existuje"
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1389,7 +1389,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1399,7 +1399,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr "Tuto skupinu již sledujete"
@ -1419,12 +1419,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -228,7 +228,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "%{count} weitere Aktivität anzeigen"
@ -238,7 +238,7 @@ msgstr[1] "Eine weitere Aktivität anzeigen"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Es hat sich etwas getan!"

View file

@ -365,7 +365,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon auf %{instance}: E-Mail geändert"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Ein Event wurde heute geplannt"
@ -373,7 +373,7 @@ msgstr[1] "%{nb_events} wurden heute geplannt"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Sie haben ein neues Event:"
@ -423,14 +423,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Sie wurden von %{inviter} eingeladen, der Gruppe %{group} beizutreten"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Ein Event ist für diese Woche geplant"
msgstr[1] "%{nb_events} Events sind für diese Woche geplant"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Eine Teilnahmeanfrage für die Veranstaltung %{title} zu bearbeiten"
@ -440,7 +440,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Sie haben diese Woche eine Veranstaltung:"
@ -960,7 +960,7 @@ msgstr "Bitte verwenden Sie es nicht für reale Zwecke."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1309,7 +1309,7 @@ msgstr ""
"(%{group_address}) zu suspendieren. Sie sind nicht länger ein Mitglied "
"dieser Gruppe."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Die Gruppe %{group} wurde auf %{instance} ausgesetzt"
@ -1439,21 +1439,6 @@ msgstr ""
"Beispiel kann es sein, dass wir diese Bedingungen ändern müssen, wenn wir "
"eine neue Funktion einführen."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Wenn wir in diesem Dokument „wir“, „unser“ oder „uns“ sagen, beziehen wir "
"uns auf die Eigentümer, Betreiber und Administratoren dieser Mobilizon-"
"Instanz. Die Mobilizon-Software wird vom Team der Mobilizon-Mitwirkenden "
"bereitgestellt, unterstützt von <a href=\"https://framasoft.org\">Framasoft</"
"a>, einer französischen Non-Profit-Organisation, die sich für freie/libre "
"Software einsetzt. Sofern nicht ausdrücklich angegeben, ist diese Mobilizon-"
"Instanz ein unabhängiger Dienst, der den Quellcode von Mobilizon verwendet. "
"Weitere Informationen über diese Instanz finden Sie auf der Seite <a href=\"/"
"about/instance\">„Über diese Instanz“</a>."
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1998,7 +1983,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Sie haben eine ausstehende Anwesenheitsanforderung zu bearbeiten:"
@ -2435,3 +2420,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Wenn wir in diesem Dokument „wir“, „unser“ oder „uns“ sagen, beziehen wir "
"uns auf die Eigentümer, Betreiber und Administratoren dieser Mobilizon-"
"Instanz. Die Mobilizon-Software wird vom Team der Mobilizon-Mitwirkenden "
"bereitgestellt, unterstützt von <a href=\"https://framasoft.org\">Framasoft</"
"a>, einer französischen Non-Profit-Organisation, die sich für freie/libre "
"Software einsetzt. Sofern nicht ausdrücklich angegeben, ist diese Mobilizon-"
"Instanz ein unabhängiger Dienst, der den Quellcode von Mobilizon verwendet. "
"Weitere Informationen über diese Instanz finden Sie auf der Seite <a href=\"/"
"about/instance\">„Über diese Instanz“</a>."

View file

@ -185,13 +185,13 @@ msgstr "Registrierungen sind nicht geöffnet"
msgid "The current password is invalid"
msgstr "Das aktuelle Passwort ist ungültig"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "Die neue E-Mail scheint nicht gültig zu sein"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -637,7 +637,7 @@ msgstr "Sie können nicht in diese Gruppe einladen"
msgid "You don't have permission to delete this token"
msgstr "Sie haben nicht die Berechtigung diesen Token zu löschen"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -661,21 +661,21 @@ msgstr ""
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"
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
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"
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
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"
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -974,7 +974,7 @@ msgstr "Das Verlassen der Veranstaltung fehlgeschlagen"
msgid "Failed to update the group"
msgstr "Aktualisierung der Gruppe fehlgeschlagen"
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1107,22 +1107,22 @@ msgstr "Sie müssen angemeldet sein, um ein Mitglied zu entfernen"
msgid "Your email seems to be using an invalid format"
msgstr "Ihre E-Mail scheint ein ungültiges Format zu verwenden"
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr "Kann einen bereits bestätigten Benutzer nicht bestätigen"
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr "Das Zurücknehmen einer Bestätigung von Benutzern wird nicht unterstützt"
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "Die neue Rolle muss anders sein"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1134,7 +1134,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr "Ein Profil oder eine Gruppe mit diesem Namen existiert bereits"
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr "Keine Instanz gefunden um dieser Adresse zu folgen"
@ -1401,7 +1401,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1411,7 +1411,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr "Sie folgen dieser Gruppe bereits"
@ -1431,12 +1431,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -300,7 +300,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@ -308,7 +308,7 @@ msgstr[1] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -358,14 +358,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
msgstr[1] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@ -373,7 +373,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -739,7 +739,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1035,7 +1035,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1119,12 +1119,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1609,7 +1603,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2003,3 +1997,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -215,7 +215,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -225,7 +225,7 @@ msgstr[1] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -353,7 +353,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@ -361,7 +361,7 @@ msgstr[1] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -411,14 +411,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
msgstr[1] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@ -426,7 +426,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -792,7 +792,7 @@ msgstr "Please do not use it in any real way"
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] "If you need to cancel your participation, just access the event page through link above and click on the participation button."
@ -1088,7 +1088,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1172,12 +1172,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1662,7 +1656,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2056,3 +2050,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -185,13 +185,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -625,7 +625,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -645,17 +645,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -942,7 +942,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1073,22 +1073,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1098,7 +1098,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1360,7 +1360,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1370,7 +1370,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1390,12 +1390,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -3,7 +3,6 @@
## `msgid`s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run `mix gettext.extract` to bring this file up to
## date. Leave `msgstr`s empty as changing them here as no
## effect: edit them in PO (`.po`) files instead.
@ -182,13 +181,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -622,7 +621,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -642,17 +641,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -939,7 +938,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1070,22 +1069,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1095,7 +1094,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1357,7 +1356,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1367,7 +1366,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format
msgid "You are already following this instance"
msgstr ""
@ -1387,12 +1386,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -227,7 +227,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Ver una actividad más"
@ -237,7 +237,7 @@ msgstr[1] "Ver %{count} actividades más"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "¡Ha habido una actividad!"

View file

@ -360,7 +360,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon en %{instance}: correo electrónico modificado"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Un evento programado para hoy"
@ -368,7 +368,7 @@ msgstr[1] "%{nb_events} eventos planeados hoy"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Tienes un evento hoy:"
@ -418,14 +418,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{Inviter} te ha invitado a unirte al grupo %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Un evento programado para hoy"
msgstr[1] "%{nb_events} eventos planeados hoy"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Una solicitud para participar en el evento %{title} a procesar"
@ -435,7 +435,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Tienes un evento hoy:"
@ -938,7 +938,7 @@ msgstr "Por favor no lo use de ninguna manera real."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1275,7 +1275,7 @@ msgstr ""
"El equipo de moderación de su instancia ha decidido suspender a "
"%{group_name} (%{group_address}). Ya no eres miembro de este grupo."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "El grupo %{group} ha sido suspendido en %{instance}"
@ -1406,22 +1406,6 @@ msgstr ""
"Por ejemplo, es posible que necesitemos cambiar estos Términos si "
"presentamos una nueva función o por alguna otra razón."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Cuando decimos \"nosotros\", \"nuestro\" o \"nosotros\" en este documento, "
"nos referimos a los propietarios, operadores y administradores de esta "
"instancia de Mobilizon. El software de Mobilizon es proporcionado por el "
"equipo de contribuyentes de Mobilizon, respaldado por <a href=\"https://"
"framasoft.org\"> Framasoft </a>, una organización educativa popular francesa "
"sin fines de lucro que aboga por el Software Libre. A menos que se indique "
"explícitamente, esta instancia de Mobilizon es un servicio independiente que "
"utiliza el código fuente de Mobilizon. Puede encontrar más información sobre "
"esta instancia en la página <a href=\"/about/instance\"> \"Acerca de esta "
"instancia\" </a>."
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1949,7 +1933,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Tiene una solicitud de participación pendiente de procesar:"
@ -2380,3 +2364,19 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Cuando decimos \"nosotros\", \"nuestro\" o \"nosotros\" en este documento, "
"nos referimos a los propietarios, operadores y administradores de esta "
"instancia de Mobilizon. El software de Mobilizon es proporcionado por el "
"equipo de contribuyentes de Mobilizon, respaldado por <a href=\"https://"
"framasoft.org\"> Framasoft </a>, una organización educativa popular francesa "
"sin fines de lucro que aboga por el Software Libre. A menos que se indique "
"explícitamente, esta instancia de Mobilizon es un servicio independiente que "
"utiliza el código fuente de Mobilizon. Puede encontrar más información sobre "
"esta instancia en la página <a href=\"/about/instance\"> \"Acerca de esta "
"instancia\" </a>."

View file

@ -183,13 +183,13 @@ msgstr "Las inscripciones no están abiertas"
msgid "The current password is invalid"
msgstr "La contraseña actual no es válida"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "El nuevo correo electrónico no parece ser válido"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -631,7 +631,7 @@ msgstr "No puedes invitar a este grupo"
msgid "You don't have permission to delete this token"
msgstr "No tienes permiso para eliminar este token"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -652,21 +652,21 @@ msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
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:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
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:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
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:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -964,7 +964,7 @@ msgstr "No se pudo salir del evento"
msgid "Failed to update the group"
msgstr "No se pudo actualizar el grupo"
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1096,22 +1096,22 @@ msgstr "Debes iniciar sesión para eliminar un miembro"
msgid "Your email seems to be using an invalid format"
msgstr "Su correo electrónico parece estar usando un formato no válido"
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr "No puedo confirmar un usuario ya confirmado"
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr "No se admite la desconfirmación de usuarios"
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "El nuevo rol debe ser diferente"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1123,7 +1123,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr "Ya existe un perfil o grupo con ese nombre"
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr "No se puede encontrar una instancia para seguir en esta dirección"
@ -1387,7 +1387,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1397,7 +1397,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr "Ya estas siguiendo este grupo"
@ -1418,12 +1418,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -224,7 +224,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Näytä seuraava toimenpide"
@ -234,7 +234,7 @@ msgstr[1] "Näytä %{count} seuraavaa toimenpidettä"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Toimenpide!"

View file

@ -354,7 +354,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon palvelimella %{instance}: sähköpostiosoite vaihdettu"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Yksi suunniteltu tapahtuma tänään"
@ -362,7 +362,7 @@ msgstr[1] "%{nb_events} suunniteltua tapahtumaa tänään"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Sinulla on tänään yksi tapahtuma:"
@ -412,14 +412,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} kutsui sinut ryhmään %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Yksi suunniteltu tapahtuma tällä viikolla"
msgstr[1] "%{nb_events} suunniteltua tapahtumaa tällä viikolla"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Yksi osallistujapyyntö tapahtumaan %{title} odottaa käsittelyä"
@ -429,7 +429,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Sinulla on tällä viikolla yksi tapahtuma:"
@ -920,7 +920,7 @@ msgstr "Älä käytä todellisiin tarkoituksiin."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1256,7 +1256,7 @@ msgstr ""
"Palvelimesi moderointitiimi on päättänyt estää ryhmän %{group_name} "
"(%{group_address}). Et ole enää tämän ryhmän jäsen."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Ryhmä %{group} on estetty palvelimella %{instance}"
@ -1378,20 +1378,6 @@ msgstr ""
"esimerkiksi olla tarpeen muuttaa, jos käyttöön otetaan uusia ominaisuuksia, "
"tai muusta syystä."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Tässä asiakirjassa ”me” tarkoittaa tämän Mobilizon-palvelimen omistajia, "
"operaattoreita ja ylläpitäjiä. Mobilizon-ohjelman on tuottanut Mobilizon-"
"toteuttajatiimi, ja tuotantoa on tukenut <a href=\"https://framasoft.org\""
">Framasoft</a>, joka on ranskalainen voittoa tavoittelematon, vapaiden ja "
"ilmaisten ohjelmistojen käyttöä edistävä kansansivistysjärjestö. Ellei "
"toisin mainita, tämä Mobilizon-palvelin on Mobilizonin lähdekoodia käyttävä "
"itsenäinen palvelu. Voit lukea lisää tästä palvelimesta <a href=\"/about/"
"instance\">”Tietoja tästä palvelimesta” -sivulta</a>."
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1915,7 +1901,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Yksi osallistujapyyntö odottaa käsittelyäsi:"
@ -2320,3 +2306,17 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Tässä asiakirjassa ”me” tarkoittaa tämän Mobilizon-palvelimen omistajia, "
"operaattoreita ja ylläpitäjiä. Mobilizon-ohjelman on tuottanut Mobilizon-"
"toteuttajatiimi, ja tuotantoa on tukenut <a href=\"https://framasoft.org\""
">Framasoft</a>, joka on ranskalainen voittoa tavoittelematon, vapaiden ja "
"ilmaisten ohjelmistojen käyttöä edistävä kansansivistysjärjestö. Ellei "
"toisin mainita, tämä Mobilizon-palvelin on Mobilizonin lähdekoodia käyttävä "
"itsenäinen palvelu. Voit lukea lisää tästä palvelimesta <a href=\"/about/"
"instance\">”Tietoja tästä palvelimesta” -sivulta</a>."

View file

@ -183,13 +183,13 @@ msgstr "Ei voi rekisteröityä"
msgid "The current password is invalid"
msgstr "Nykyinen salasana ei kelpaa"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "Uusi sähköpostiosoite ei vaikuta kelvolliselta"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -628,7 +628,7 @@ msgstr "Et voi kutsua tähän ryhmään"
msgid "You don't have permission to delete this token"
msgstr "Sinulla ei ole oikeutta poistaa tätä merkkiä"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Toimintalokien katselu vain moderaattorille sisäänkirjautuneena"
@ -648,17 +648,17 @@ msgstr "Raportin päivittäminen vain moderaattorille sisäänkirjautuneena"
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Raportin katselu vain moderaattorille sisäänkirjautuneena"
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr "Pääsy ylläpitoasetuksiin vain ylläpitäjälle sisäänkirjautuneena"
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr "Pääsy koontinäytön tilastoihin vain ylläpitäjälle sisäänkirjautuneena"
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
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"
@ -945,7 +945,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1076,22 +1076,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr "Uuden sähköpostiosoitteen on poikettava vanhasta"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena"
@ -1101,7 +1101,7 @@ msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1363,7 +1363,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1373,7 +1373,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1393,12 +1393,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -224,7 +224,7 @@ msgstr "Vous ne voulez pas recevoir de notifications d'activité ? Vous pouvez
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Voir une activité de plus"
@ -234,7 +234,7 @@ msgstr[1] "Voir %{count} activités de plus"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Il y a eu une activité !"

File diff suppressed because it is too large Load diff

View file

@ -184,13 +184,13 @@ msgstr "Les inscriptions ne sont pas ouvertes"
msgid "The current password is invalid"
msgstr "Le mot de passe actuel est invalide"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "La nouvelle adresse e-mail ne semble pas être valide"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -624,7 +624,7 @@ msgstr "Vous ne pouvez pas rejoindre ce groupe"
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:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
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"
@ -644,17 +644,17 @@ msgstr "Vous devez être connecté·e et une modérateur·ice pour modifier un s
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:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
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:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
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:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
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"
@ -941,7 +941,7 @@ msgstr "Impossible de quitter l'événement"
msgid "Failed to update the group"
msgstr "Impossible de mettre à jour le groupe"
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1072,22 +1072,22 @@ msgstr "Vous devez être connecté⋅e pour supprimer un⋅e membre"
msgid "Your email seems to be using an invalid format"
msgstr "Votre email semble utiliser un format invalide"
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr "Impossible de confirmer un⋅e utilisateur⋅ice déjà confirmé⋅e"
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr "Dé-confirmer des utilisateur⋅ices n'est pas supporté"
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "Le nouveau rôle doit être différent"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour éditer les détails d'un⋅e utilisateur⋅ice"
@ -1097,7 +1097,7 @@ msgstr "Vous devez être connecté·e et un·e administrateur·ice pour éditer
msgid "A profile or group with that name already exists"
msgstr "Un profil ou un groupe avec ce nom existe déjà"
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr "Impossible de trouver une instance à suivre à cette adresse"
@ -1361,7 +1361,7 @@ msgstr "L'enregistrement externe n'est pas autorisé"
msgid "The same push subscription has already been registered"
msgstr "Le même abonnement push a déjà été enregistré"
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr "Cette instance est en attente d'une approbation de suivi"
@ -1371,7 +1371,7 @@ msgstr "Cette instance est en attente d'une approbation de suivi"
msgid "Timezone ID %{timezone} is invalid"
msgstr "L'ID de fuseau horaire %{timezone} est invalide"
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format
msgid "You are already following this instance"
msgstr "Vous suivez déjà cette instance"
@ -1393,12 +1393,12 @@ msgstr ""
"Le jeton que vous avez fourni n'est pas valide. Assurez-vous que l'URL est exactement la même que celle fournie dans le courriel que vous "
"avez reçu."
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr "La conversation doit mentionner au moins un·e participant·e qui n'est pas vous-même"
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr "Il n'y a pas de participant·es correspondant à l'audience que vous avez sélectionnée."

View file

@ -231,7 +231,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Seall %{count} ghnìomhachd a bharrachd"
@ -243,7 +243,7 @@ msgstr[3] "Seall %{count} gnìomhachd a bharrachd"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Bha gnìomhachd ann!"

View file

@ -321,7 +321,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@ -331,7 +331,7 @@ msgstr[3] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -383,7 +383,7 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
@ -392,7 +392,7 @@ msgstr[2] ""
msgstr[3] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@ -402,7 +402,7 @@ msgstr[3] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -770,7 +770,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1068,7 +1068,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1152,12 +1152,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1642,7 +1636,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2038,3 +2032,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -188,13 +188,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -628,7 +628,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -648,17 +648,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -945,7 +945,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1076,22 +1076,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1101,7 +1101,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1363,7 +1363,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1373,7 +1373,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1393,12 +1393,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -228,7 +228,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Ver unha actividade máis"
@ -238,7 +238,7 @@ msgstr[1] "Ver %{count} actividades máis"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Houbo actividade!"

View file

@ -356,7 +356,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon en %{instance}: email cambiado"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Un evento previsto para hoxe"
@ -364,7 +364,7 @@ msgstr[1] "%{nb_events} eventos previstos hoxe"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Hoxe tes un evento:"
@ -414,14 +414,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} convidoute a unirte ó grupo %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Un evento previsto nesta semana"
msgstr[1] "%{nb_events} eventos previstos nesta semana"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Hai unha solicitude de participación para o evento %{title} que atender"
@ -431,7 +431,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Tes un evento esta semana:"
@ -916,7 +916,7 @@ msgstr "Por favor, non o utilices nun entorno de produción."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1252,7 +1252,7 @@ msgstr ""
"Os moderadores da túa instancia decidiron suspender %{group_name} "
"(%{group_address}). Xa non pertences a este grupo."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "O grupo %{group} foi suspendido en %{instance}"
@ -1375,21 +1375,6 @@ msgstr ""
"Reservamos o dereito a modificar estos Termos en calquera momento. Por "
"exemplo, poderiamos cambiar os Termos se introducimos novas funcións."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Cando dicimos \"nós\", \"noso\" ou \"a nós\" neste documento, referímonos ás "
"persoas donas, operadoras e administradoras desta instancia Mobilizon. O "
"software Mobilizon está proporcionado polo equipo de colaboradoras de "
"Mobilizon, coa axuda de <a href=\"https://framasoft.org\">Framasoft</a>, "
"unha organización francesa sen ánimo de lucro que fomenta o Software Libre. "
"A non ser que se indique o contrario, esta instancia Mobilizon é un servizo "
"independente que está a usar o código fonte de Mobilizon. Podes atopar máis "
"información sobre esta instancia na páxina <a href=\"/about/instance\""
">Acerca desta instancia</a>."
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1911,7 +1896,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Tes unha solicitude de participación pendente de atender:"
@ -2316,3 +2301,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Cando dicimos \"nós\", \"noso\" ou \"a nós\" neste documento, referímonos ás "
"persoas donas, operadoras e administradoras desta instancia Mobilizon. O "
"software Mobilizon está proporcionado polo equipo de colaboradoras de "
"Mobilizon, coa axuda de <a href=\"https://framasoft.org\">Framasoft</a>, "
"unha organización francesa sen ánimo de lucro que fomenta o Software Libre. "
"A non ser que se indique o contrario, esta instancia Mobilizon é un servizo "
"independente que está a usar o código fonte de Mobilizon. Podes atopar máis "
"información sobre esta instancia na páxina <a href=\"/about/instance\""
">Acerca desta instancia</a>."

View file

@ -183,13 +183,13 @@ msgstr "O rexistro está pechado"
msgid "The current password is invalid"
msgstr "O contrasinal actual non é válido"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "O novo email non semella ser válido"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -628,7 +628,7 @@ msgstr "Non podes convidar a este grupo"
msgid "You don't have permission to delete this token"
msgstr "Non tes permiso para eliminar este token"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -650,21 +650,21 @@ msgstr "Tes que estas conectada e ser moderadora para actualizar unha denuncia"
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:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
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:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
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:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -959,7 +959,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1090,22 +1090,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr "O novo email ten que ser diferente"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1117,7 +1117,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1379,7 +1379,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1389,7 +1389,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1409,12 +1409,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -230,7 +230,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "להציג עוד פעילות אחת"
@ -242,7 +242,7 @@ msgstr[3] "להציג עוד %{count} פעילויות"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "התרחשה פעילות!"

View file

@ -314,7 +314,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@ -324,7 +324,7 @@ msgstr[3] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -376,7 +376,7 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format, fuzzy
#, elixir-format, elixir-autogen, fuzzy
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
@ -385,7 +385,7 @@ msgstr[2] ""
msgstr[3] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@ -395,7 +395,7 @@ msgstr[3] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -763,7 +763,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format, fuzzy
#, elixir-format, elixir-autogen, fuzzy
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1061,7 +1061,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1145,12 +1145,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1635,7 +1629,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2031,3 +2025,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -189,13 +189,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -629,7 +629,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -649,17 +649,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -946,7 +946,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1077,22 +1077,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1102,7 +1102,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1364,7 +1364,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1374,7 +1374,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1394,12 +1394,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -231,7 +231,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Prikaži još jednu aktivnost"
@ -242,7 +242,7 @@ msgstr[2] "Prikaži još %{count} aktivnosti"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Aktivnost!"

View file

@ -333,7 +333,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon na %{instance}: e-mail adresa se promijenila"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Za danas je planiran jedan događaj"
@ -342,7 +342,7 @@ msgstr[2] "Za danas je planirano %{nb_events} događaja"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Danas imaš jedan događaj:"
@ -393,7 +393,7 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} te pozvao/la da se pridružiš grupi %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Ovaj tjedan je planiran jedan događaj"
@ -401,7 +401,7 @@ msgstr[1] "Ovaj tjedan su planirana %{nb_events} događaja"
msgstr[2] "Ovaj tjedan je planirano %{nb_events} događaja"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Jedan zahtjev za sudjelovanje događaju %{title} koji se mora obraditi"
@ -414,7 +414,7 @@ msgstr[2] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Ovaj tjedan imaš jedan događaj:"
@ -800,7 +800,7 @@ msgstr "Nemoj to koristiti u stvarne svrhe."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1133,7 +1133,7 @@ msgstr ""
"Tim za moderiranje tvoje instance je odlučio suspendirati %{group_name} "
"(%{group_address}). Više nisi član ove grupe."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Grupa %{group} je suspendirana na instanci %{instance}"
@ -1222,12 +1222,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1738,7 +1732,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Imaš jedan neriješen zahtjev za prisustvovanje za sljedeći događaj:"
@ -2162,3 +2156,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -206,13 +206,13 @@ msgstr "Registracije nisu otvorene"
msgid "The current password is invalid"
msgstr "Aktualna lozinka nije ispravna"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "Čini se da nova e-mail adresa nije ispravna"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -650,7 +650,7 @@ msgstr "Ne možeš pozivati u ovu grupu"
msgid "You don't have permission to delete this token"
msgstr "Nemaš dozvole za brisanje ovog tokena"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Za prikaz zapisnike radnji moraš biti prijavljen/a i biti moderator"
@ -670,21 +670,21 @@ msgstr "Za aktualiziranje izvještaja moraš biti prijavljen/a i biti moderator"
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Za prikaz izvještaja moraš biti prijavljen/a i biti moderator"
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Za pristup administratorskim postavkama moraš biti prijavljen/a i biti "
"moderator"
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Za pristup nadzornoj ploči statistike moraš biti prijavljen/a i biti "
"administrator"
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -975,7 +975,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1106,22 +1106,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "Nova uloga mora biti drugačija"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1132,7 +1132,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1394,7 +1394,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1404,7 +1404,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1424,12 +1424,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr "Konverzacija treba spomenuti barem jednog sudionika koji nisi ti"
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -228,7 +228,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Még egy tevékenység megtekintése"
@ -238,7 +238,7 @@ msgstr[1] "Még %{count} tevékenység megtekintése"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Történt egy tevékenység!"

View file

@ -360,7 +360,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon a(z) %{instance} példányon: e-mail-cím megváltoztatva"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Egy esemény van tervezve mára"
@ -368,7 +368,7 @@ msgstr[1] "%{nb_events} esemény van tervezve mára"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Egy eseménye van mára:"
@ -418,14 +418,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} meghívta, hogy csatlakozzon a(z) %{group} csoporthoz"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Egy esemény van tervezve erre a hétre"
msgstr[1] "%{nb_events} esemény van tervezve erre a hétre"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Egy feldolgozandó részvételi kérés a(z) %{title} eseménynél"
@ -435,7 +435,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Egy eseménye van ezen héten:"
@ -823,7 +823,7 @@ msgstr "Ne használja valós célokhoz."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1166,7 +1166,7 @@ msgstr ""
"A példánya moderátori csapata úgy döntött, hogy felfüggeszti a(z) "
"%{group_name} csoportot (%{group_address}). Többé már nem a csoport tagja."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "A(z) %{group} csoport fel lett függesztve a(z) %{instance} példányon"
@ -1255,12 +1255,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1768,7 +1762,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Egy függőben lévő részvételi kérése van a következő eseménynél:"
@ -2202,3 +2196,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr "Szép munka."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -198,13 +198,13 @@ msgstr "A regisztrációk nincsenek nyitva"
msgid "The current password is invalid"
msgstr "A jelenlegi jelszó érvénytelen"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
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/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -645,7 +645,7 @@ msgstr "Nem tud meghívni ebbe a csoportba"
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:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -673,21 +673,21 @@ msgstr ""
"Bejelentkezve kell lennie és moderátornak kell lennie egy jelentés "
"megtekintéséhez"
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
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:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
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:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -986,7 +986,7 @@ msgstr "Nem sikerült elhagyni az eseményt"
msgid "Failed to update the group"
msgstr "Nem sikerült frissíteni a csoportot"
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1121,22 +1121,22 @@ msgstr "Bejelentkezve kell lennie egy tag eltávolításához"
msgid "Your email seems to be using an invalid format"
msgstr "Úgy tűnik, hogy az e-mail-címe érvénytelen formátumot használ"
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr "A már megerősített felhasználó nem erősíthető meg"
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr "A felhasználók megerősítésének visszavonása nem támogatott"
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "Az új szerepnek eltérőnek kell lennie"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1148,7 +1148,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr "Már létezik ilyen nevű profil vagy csoport"
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr "Nem található követhető példány ezen a címen"
@ -1412,7 +1412,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1422,7 +1422,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr "Már követi ezt a csoportot"
@ -1442,12 +1442,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -227,7 +227,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Lihat %{count} aktivitas lagi"
@ -236,7 +236,7 @@ msgstr[0] "Lihat %{count} aktivitas lagi"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -333,14 +333,14 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon pada %{instance}: surel diubah"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "%{nb_events} acara direncanakan hari ini"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Anda memiliki %{total} acara hari ini:"
@ -390,20 +390,20 @@ msgstr ""
"Anda telah diundang oleh %{inviter} untuk bergabung ke kelompok %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "%{nb_events} acara direncanakan pekan ini"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Anda memiliki %{total} acara pekan ini:"
@ -785,7 +785,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1085,7 +1085,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1169,12 +1169,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1659,7 +1653,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2052,3 +2046,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -176,13 +176,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -616,7 +616,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -636,17 +636,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -933,7 +933,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1064,22 +1064,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1089,7 +1089,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1351,7 +1351,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1361,7 +1361,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1381,12 +1381,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -226,7 +226,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Visualizza un'altra attività"
@ -236,7 +236,7 @@ msgstr[1] "Visualizza altre %{count} attività"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "C'è stata un'attività!"

View file

@ -357,7 +357,7 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon su %{instance}: email modificata"
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Un evento programmato oggi"
@ -365,7 +365,7 @@ msgstr[1] "%{nb_events} eventi programmati oggi"
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Hai un evento oggi:"
@ -415,14 +415,14 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Sei stato invitato da %{inviter} a unirti al gruppo %{group}"
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Un evento in programma questa settimana"
msgstr[1] "%{nb_events} eventi in programma questa settimana"
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Una richiesta di partecipazione per l'evento %{title} da elaborare"
@ -432,7 +432,7 @@ msgstr[1] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Hai un evento questa settimana:"
@ -941,7 +941,7 @@ msgstr "Si prega di non usarlo per scopi reali."
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1285,7 +1285,7 @@ msgstr ""
"Il team di moderazione della tua istanza ha deciso di sospendere "
"%{group_name} (%{group_address}). Non sei più un membro di questo gruppo."
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Il gruppo %{group} è stato sospeso su %{instance}"
@ -1416,21 +1416,6 @@ msgstr ""
"momento. Ad esempio, potrebbe essere necessario modificare questi Termini se "
"pubblichiamo una nuova funzionalità."
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Quando diciamo \"noi\" o \"nostro\" in questo documento, ci riferiamo ai "
"proprietari, operatori e amministratori di questa istanza di Mobilizon. Il "
"software Mobilizon è fornito dal team di collaboratori di Mobilizon, "
"supportato da <a href=\"https://framasoft.org\">Framasoft</a>, "
"un'organizzazione francese senza scopo di lucro che sostiene il software "
"gratuito/libero. Se non diversamente specificato, questa istanza di "
"Mobilizon è un servizio indipendente che utilizza il codice sorgente di "
"Mobilizon. Puoi trovare ulteriori informazioni su questa istanza nella "
"pagina <a href=\"/about/instance\">\"Informazioni su questa istanza\"</a>."
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1964,7 +1949,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Hai una richiesta di partecipazione in sospeso da esaminare:"
@ -2399,3 +2384,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
"Quando diciamo \"noi\" o \"nostro\" in questo documento, ci riferiamo ai "
"proprietari, operatori e amministratori di questa istanza di Mobilizon. Il "
"software Mobilizon è fornito dal team di collaboratori di Mobilizon, "
"supportato da <a href=\"https://framasoft.org\">Framasoft</a>, "
"un'organizzazione francese senza scopo di lucro che sostiene il software "
"gratuito/libero. Se non diversamente specificato, questa istanza di "
"Mobilizon è un servizio indipendente che utilizza il codice sorgente di "
"Mobilizon. Puoi trovare ulteriori informazioni su questa istanza nella "
"pagina <a href=\"/about/instance\">\"Informazioni su questa istanza\"</a>."

View file

@ -182,13 +182,13 @@ msgstr "Le registrazioni non sono aperte"
msgid "The current password is invalid"
msgstr "la password corrente non è valida"
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr "La nuova email sembra non valida"
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -627,7 +627,7 @@ msgstr "Non puoi invitare in questo gruppo"
msgid "You don't have permission to delete this token"
msgstr "Non hai il permesso di cancellare questo token"
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
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"
@ -647,21 +647,21 @@ msgstr "Devi essere connesso e un moderatore per aggiornare un rapporto"
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"
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
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"
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
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"
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -962,7 +962,7 @@ msgstr "Non è stato possibile abbandonare l'evento"
msgid "Failed to update the group"
msgstr "Non è stato possibile aggiornare il gruppo"
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1094,22 +1094,22 @@ msgstr "Per rimuovere un membro è necessario aver effettuato il login"
msgid "Your email seems to be using an invalid format"
msgstr "La tua email sembra utilizzare un formato non valido"
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr "Non è possibile confermare un utente già confermato"
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr "La deconferma degli utenti non è supportata"
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr "La nuova email dev'essere diversa"
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1121,7 +1121,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr "Esiste già un profilo o un gruppo con quel nome"
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr "Non è stato possibile trovare un'istanza da seguire a questo indirizzo"
@ -1387,7 +1387,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1397,7 +1397,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr "Stai già seguendo questo gruppo"
@ -1417,12 +1417,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -224,7 +224,7 @@ msgstr "通知の頻度と有効・無効の設定はアカウントの設定で
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "もっと更新・投稿を見る"
@ -233,7 +233,7 @@ msgstr[0] "もっと更新・投稿を見る"
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "更新か投稿がありました!"

View file

@ -316,14 +316,14 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -372,20 +372,20 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -750,7 +750,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1045,7 +1045,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1130,12 +1130,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1621,7 +1615,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2019,3 +2013,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -176,13 +176,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -616,7 +616,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -636,17 +636,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -933,7 +933,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1064,22 +1064,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format, fuzzy
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format, fuzzy
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1089,7 +1089,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1351,7 +1351,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1361,7 +1361,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format, fuzzy
msgid "You are already following this instance"
msgstr ""
@ -1381,12 +1381,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -225,7 +225,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -235,7 +235,7 @@ msgstr[1] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

View file

@ -320,14 +320,14 @@ msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#: lib/web/email/notification.ex:52
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
#: lib/web/templates/email/on_day_notification.html.heex:47
#: lib/web/templates/email/on_day_notification.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -376,20 +376,20 @@ msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#: lib/web/email/notification.ex:81
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
#: lib/web/email/notification.ex:107
#, elixir-format
#, elixir-format, elixir-autogen
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
#: lib/web/templates/email/notification_each_week.html.heex:47
#: lib/web/templates/email/notification_each_week.text.eex:3
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] ""
@ -754,7 +754,7 @@ msgstr ""
#: lib/web/templates/email/notification_each_week.text.eex:11
#: lib/web/templates/email/on_day_notification.html.heex:89
#: lib/web/templates/email/on_day_notification.text.eex:11
#, elixir-format
#, elixir-format, elixir-autogen
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@ -1049,7 +1049,7 @@ msgstr ""
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
#: lib/web/email/group.ex:108
#: lib/web/email/group.ex:106
#, elixir-autogen, elixir-format
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@ -1133,12 +1133,6 @@ msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by <a href=\"https://framasoft.org\">Framasoft</a>, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""
#: lib/web/templates/api/terms.html.heex:105
#, elixir-autogen, elixir-format
msgctxt "terms"
@ -1623,7 +1617,7 @@ msgstr ""
#: lib/web/templates/email/pending_participation_notification.html.heex:47
#: lib/web/templates/email/pending_participation_notification.text.eex:4
#, elixir-format
#, elixir-format, elixir-autogen
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
@ -2016,3 +2010,9 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Well done!"
msgstr ""
#: lib/web/templates/api/terms.html.heex:55
#, elixir-autogen, elixir-format, fuzzy
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the <a href=\"/about/instance\">\"About this instance\"</a> page."
msgstr ""

View file

@ -169,13 +169,13 @@ msgstr ""
msgid "The current password is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:334
#: lib/graphql/resolvers/admin.ex:335
#: lib/graphql/resolvers/user.ex:527
#, elixir-autogen, elixir-format
msgid "The new email doesn't seem to be valid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:323
#: lib/graphql/resolvers/admin.ex:324
#: lib/graphql/resolvers/user.ex:514
#, elixir-autogen, elixir-format
msgid "The new email must be different"
@ -609,7 +609,7 @@ msgstr ""
msgid "You don't have permission to delete this token"
msgstr ""
#: lib/graphql/resolvers/admin.ex:56
#: lib/graphql/resolvers/admin.ex:57
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
@ -629,17 +629,17 @@ msgstr ""
msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#: lib/graphql/resolvers/admin.ex:258
#: lib/graphql/resolvers/admin.ex:259
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#: lib/graphql/resolvers/admin.ex:242
#: lib/graphql/resolvers/admin.ex:243
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#: lib/graphql/resolvers/admin.ex:283
#: lib/graphql/resolvers/admin.ex:284
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
@ -926,7 +926,7 @@ msgstr ""
msgid "Failed to update the group"
msgstr ""
#: lib/graphql/resolvers/admin.ex:357
#: lib/graphql/resolvers/admin.ex:358
#: lib/graphql/resolvers/user.ex:547
#, elixir-autogen, elixir-format
msgid "Failed to update user email"
@ -1057,22 +1057,22 @@ msgstr ""
msgid "Your email seems to be using an invalid format"
msgstr ""
#: lib/graphql/resolvers/admin.ex:399
#: lib/graphql/resolvers/admin.ex:400
#, elixir-autogen, elixir-format
msgid "Can't confirm an already confirmed user"
msgstr ""
#: lib/graphql/resolvers/admin.ex:403
#: lib/graphql/resolvers/admin.ex:404
#, elixir-autogen, elixir-format
msgid "Deconfirming users is not supported"
msgstr ""
#: lib/graphql/resolvers/admin.ex:375
#: lib/graphql/resolvers/admin.ex:376
#, elixir-autogen, elixir-format
msgid "The new role must be different"
msgstr ""
#: lib/graphql/resolvers/admin.ex:314
#: lib/graphql/resolvers/admin.ex:315
#, elixir-autogen, elixir-format
msgid "You need to be logged-in and an administrator to edit an user's details"
msgstr ""
@ -1082,7 +1082,7 @@ msgstr ""
msgid "A profile or group with that name already exists"
msgstr ""
#: lib/graphql/resolvers/admin.ex:542
#: lib/graphql/resolvers/admin.ex:560
#, elixir-autogen, elixir-format
msgid "Unable to find an instance to follow at this address"
msgstr ""
@ -1344,7 +1344,7 @@ msgstr ""
msgid "The same push subscription has already been registered"
msgstr ""
#: lib/graphql/resolvers/admin.ex:536
#: lib/graphql/resolvers/admin.ex:554
#, elixir-autogen, elixir-format
msgid "This instance is pending follow approval"
msgstr ""
@ -1354,7 +1354,7 @@ msgstr ""
msgid "Timezone ID %{timezone} is invalid"
msgstr ""
#: lib/graphql/resolvers/admin.ex:539
#: lib/graphql/resolvers/admin.ex:557
#, elixir-autogen, elixir-format
msgid "You are already following this instance"
msgstr ""
@ -1374,12 +1374,12 @@ msgstr ""
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
#: lib/graphql/resolvers/conversation.ex:161
#: lib/graphql/resolvers/conversation.ex:164
#, elixir-autogen, elixir-format
msgid "Conversation needs to mention at least one participant that's not yourself"
msgstr ""
#: lib/graphql/resolvers/participant.ex:396
#: lib/graphql/resolvers/participant.ex:401
#, elixir-autogen, elixir-format
msgid "There are no participants matching the audience you've selected."
msgstr ""

View file

@ -215,7 +215,7 @@ msgstr ""
#: lib/web/templates/email/email_direct_activity.html.heex:230
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#, elixir-format, elixir-autogen
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
@ -225,7 +225,7 @@ msgstr[1] ""
#: lib/web/templates/email/email_direct_activity.html.heex:60
#: lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
#, elixir-format, elixir-autogen
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""

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