correct lint-elixir

This commit is contained in:
Laurent GAY
2025-11-21 17:44:55 +01:00
committed by setop
parent 21e9213c8a
commit 4255219e9f
51 changed files with 608 additions and 614 deletions

View File

@@ -1,178 +1,178 @@
<article class="message">
<p class="message-body">
<%= pgettext(
{pgettext(
"terms",
"Some terms, technical or otherwise, used in the text below may cover concepts that are difficult to grasp. We have provided <a href=\"/glossary\">a glossary</a> to help you understand them better."
)
|> raw %>
|> raw}
</p>
</article>
<h3><%= pgettext("terms", "What information do we collect?") %></h3>
<h3>{pgettext("terms", "What information do we collect?")}</h3>
<ul>
<li>
<b><%= pgettext("terms", "Basic account information") %></b>
<b>{pgettext("terms", "Basic account information")}</b>
<p>
<%= pgettext(
{pgettext(
"terms",
"We collect information from you when you register on this instance and gather data when you participate in the platform by reading, writing, and interacting with content shared here. If you register on this instance, you will be asked to enter <b>an email address, a password</b> (hashed) and at least <b>an username</b>. Your email address will be verified by an email containing a unique link. Once the link is activated, we know you control that email address. You may also enter additional profile information such as <b>a display name and biography, and upload a profile picture and header image</b>. The username, display name, biography, profile picture and header image <b>are always listed publicly</b>. <b>You may however visit this instance without registering</b>."
)
|> raw %>
|> raw}
</p>
</li>
<li>
<b><%= pgettext("terms", "Published events and comments") %></b>
<b>{pgettext("terms", "Published events and comments")}</b>
<p>
<%= pgettext(
{pgettext(
"terms",
"Your <b>events</b> and <b>comments</b> are delivered to other instances that follow your own, meaning they are delivered to different instances and copies are stored there. When you delete events or comments, this is likewise delivered to these other instances. All interactions related to event features - such as joining an event - or group features - such as managing resources - are federated as well. Please keep in mind that the operators of the instance and any receiving instances may view such messages and information, and that recipients may screenshot, copy or otherwise re-share them."
)
|> raw %>
|> raw}
</p>
<p>
<b><%= pgettext("terms", "Do not share any dangerous information over Mobilizon.") %></b>
<b>{pgettext("terms", "Do not share any dangerous information over Mobilizon.")}</b>
</p>
</li>
<li>
<b><%= pgettext("terms", "IPs and other metadata") %></b>
<b>{pgettext("terms", "IPs and other metadata")}</b>
<p>
<%= pgettext(
{pgettext(
"terms",
"We also may retain server logs which include the IP address of every request to our server."
) %>
)}
</p>
</li>
</ul>
<h3><%= pgettext("terms", "What do we use your information for?") %></h3>
<h3>{pgettext("terms", "What do we use your information for?")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"Any of the information we collect from you may be used in the following ways:"
) %>
)}
</p>
<ul>
<li>
<%= pgettext(
{pgettext(
"terms",
"To provide the core functionality of Mobilizon. Depending on this instance's policy you may only be able to
interact with other people's content and post your own content if you are logged in."
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"To aid moderation of the community, for example comparing your IP address with other known ones to determine ban
evasion or other violations."
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"The email address you provide may be used to send you information, updates and notifications about other people
interacting with your content or sending you messages and to respond to inquiries, and/or other requests or
questions."
) %>
)}
</li>
</ul>
<h3 class="title"><%= pgettext("terms", "How do we protect your information?") %></h3>
<h3 class="title">{pgettext("terms", "How do we protect your information?")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL/TLS, and your password is hashed using a strong one-way algorithm."
) %>
)}
</p>
<h3 class="title"><%= pgettext("terms", "What is our data retention policy?") %></h3>
<p><%= pgettext("terms", "We will make a good faith effort to:") %></p>
<h3 class="title">{pgettext("terms", "What is our data retention policy?")}</h3>
<p>{pgettext("terms", "We will make a good faith effort to:")}</p>
<ul>
<li>
<%= pgettext(
{pgettext(
"terms",
"Retain server logs containing the IP address of all requests to this server, insofar as such logs are kept, no more than 90 days."
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Retain the IP addresses associated with registered users no more than 12 months."
) %>
)}
</li>
</ul>
<p><%= pgettext("terms", "You may irreversibly delete your account at any time.") %></p>
<h3 class="title"><%= pgettext("terms", "Do we use cookies?") %></h3>
<p>{pgettext("terms", "You may irreversibly delete your account at any time.")}</p>
<h3 class="title">{pgettext("terms", "Do we use cookies?")}</h3>
<p>
<%= pgettext("terms", "We store the following information on your device when you connect:") %>
{pgettext("terms", "We store the following information on your device when you connect:")}
</p>
<ul>
<li><%= pgettext("terms", "An internal user ID") %></li>
<li><%= pgettext("terms", "An internal ID for your current selected identity") %></li>
<li><%= pgettext("terms", "Tokens to authenticate you") %></li>
<li>{pgettext("terms", "An internal user ID")}</li>
<li>{pgettext("terms", "An internal ID for your current selected identity")}</li>
<li>{pgettext("terms", "Tokens to authenticate you")}</li>
</ul>
<p><%= pgettext("terms", "If you delete this information, you need to login again.") %></p>
<p>{pgettext("terms", "If you delete this information, you need to login again.")}</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"If you're not connected, we don't store any information on your device, unless you participate in an event anonymously. In this specific case we store the hash of an unique identifier for the event and participation status in your browser so that we may display participation status. Deleting this information will only stop displaying participation status in your browser."
) %>
)}
</p>
<em>
<%= pgettext(
{pgettext(
"terms",
"Note: This information is stored in your localStorage and not your cookies."
) %>
)}
</em>
<h3 class="title">
<%= pgettext("terms", "Do we disclose any information to outside parties?") %>
{pgettext("terms", "Do we disclose any information to outside parties?")}
</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"No. We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"Your content may be downloaded by other instances in the network. Your public events and comments are delivered to the instances following your own instance. Content created through a group is forwarded to all the instances of all the members of the group, insofar as these members reside on a different instance than this one."
) %>
)}
</p>
<h3 class="title"><%= pgettext("terms", "Site usage by children") %></h3>
<h3 class="title">{pgettext("terms", "Site usage by children")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (<a href=\"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\">General Data Protection Regulation</a>) do not use this site."
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (<a href=\"https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act\">Children's Online Privacy Protection Act</a>) do not use this site."
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"Law requirements can be different if this server is in another jurisdiction."
) %>
)}
</p>
<h3 class="title"><%= pgettext("terms", "Changes to our Privacy Policy") %></h3>
<h3 class="title">{pgettext("terms", "Changes to our Privacy Policy")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"If we decide to change our privacy policy, we will post those changes on this page."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"This document is licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>. It was last updated June 18, 2020."
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"Originally adapted from the <a href=\"https://mastodon.social/terms\">Mastodon</a> and <a href=\"https://github.com/discourse/discourse\">Discourse</a> privacy policies, also licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>."
)
|> raw %>
|> raw}
</p>

View File

@@ -1,326 +1,326 @@
<article class="message is-primary">
<div class="message-body">
<h3><%= pgettext("terms", "Short version") %></h3>
<h3>{pgettext("terms", "Short version")}</h3>
<ul>
<li><%= pgettext("terms", "Your content is yours") %></li>
<li>{pgettext("terms", "Your content is yours")}</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"<b>%{instance_name}</b> will not use or transmit or resell your personal data",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</li>
<li>
<%= pgettext("terms", "You must respect the law when using <b>%{instance_name}</b>", %{
{pgettext("terms", "You must respect the law when using <b>%{instance_name}</b>", %{
instance_name: @instance_name
})
|> raw %>
|> raw}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"You must respect other people and <b>%{instance_name}</b>'s rules when using the service",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"The service is provided without warranties and these terms may change in the future"
) %>
)}
</li>
</ul>
</div>
</article>
<article class="message">
<p class="message-body">
<%= pgettext(
{pgettext(
"terms",
"Some terms, technical or otherwise, used in the text below may cover concepts that are difficult to grasp. We have provided <a href=\"/glossary\">a glossary</a> to help you understand them better."
)
|> raw %>
|> raw}
</p>
</article>
<p>
<%= pgettext(
{pgettext(
"terms",
"Here are the important things you need to know about accessing and using the <b>%{instance_name}</b> (<a href=\"https://%{instance_url}\">%{instance_url}</a>) website and service (collectively, \"Service\"). These are our terms of service (\"Terms\"). Please read them carefully.",
%{instance_name: @instance_name, instance_url: @instance_url}
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{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. 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 %>
|> raw}
</p>
<!-- Accept -->
<h3><%= pgettext("terms", "Accepting these Terms") %></h3>
<h3>{pgettext("terms", "Accepting these Terms")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"By accessing or using the Service, this means you agree to be bound by all the terms below. If these terms are in any way unclear, please let us know by contacting %{contact}.",
%{contact: @instance_contact}
)
|> raw %>
|> raw}
</p>
<!-- Changes -->
<h3>
<%= pgettext("terms", "Changes to these Terms") %>
{pgettext("terms", "Changes to these Terms")}
</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"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."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"If we make major changes, we will notify our users in a clear and prominent manner. Minor changes may only be highlighted in the footer of our website. It is your responsibility to check the website regularly for changes to these Terms."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"If you continue to use the Service after the revised Terms go into effect, you accept the revised Terms."
) %>
)}
</p>
<!-- Privacy policy -->
<h3><%= pgettext("terms", "Privacy Policy") %></h3>
<h3>{pgettext("terms", "Privacy Policy")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"For information about how we collect and use information about users of the Service, please check our <a href=\"/privacy\">privacy policy</a>."
)
|> raw %>
|> raw}
</p>
<!-- Account security -->
<h3><%= pgettext("terms", "Creating Accounts") %></h3>
<h3>{pgettext("terms", "Creating Accounts")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"When you create an account you agree to maintain the security and confidentiality of your password and accept all risks of unauthorized access to your account data and any other information you provide to <b>%{instance_name}</b>.",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"If you discover or suspect any Service security breaches, please let us know as soon as possible. For security holes in the Mobilizon software itself, please contact <a href=\"https://framagit.org/framasoft/mobilizon/\">its contributors</a> directly."
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"We are not liable for any loss you may incur as a result of someone else using your email or password, either with or without your knowledge."
) %>
)}
</p>
<!-- Your content -->
<h3><%= pgettext("terms", "Your Content & Conduct") %></h3>
<h3>{pgettext("terms", "Your Content & Conduct")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"Our Service allows you and other users to post, link and otherwise make available content. You are responsible for the content that you make available to the Service, including its legality, reliability, and appropriateness."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"When you post, link or otherwise make available content to the Service, you grant us the right and license to display and distribute your content on or through the Service (including via applications). We may format your content for display throughout the Service, but we will not edit or revise the substance of your content itself. The displaying and distribution of your content happens only according to the visibility rules you have set for the content. We will not modify the visibility of the content you have set."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"We cannot be held responsible should a programming or administrative error make your content visible to a larger audience than intended. Aside from our limited right to your content, you retain all of your rights to the content you post, link and otherwise make available on or through the Service."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"You can remove the content that you posted by deleting it. Once you delete your content, it will not appear on the Service, but copies of your deleted content may remain in our system or backups for some period of time. Web server access logs might also be stored for some time in the system."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"Since Mobilizon is a distributed network, it is possible, depending on the visibility rules set to your content, that your content has been distributed to other Mobilizon instances. When you delete your content, we will request those other instances to also delete the content. Our responsibility on the content being deleted from those other instances ends here. If for some reason, some other instance does not delete the content, we cannot be held responsible."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"In order to make <b>%{instance_name}</b> a great place for all of us, please do not post, link and otherwise make available on or through the Service any of the following:",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</p>
<ul>
<li>
<%= pgettext(
{pgettext(
"terms",
"Content that is illegal or unlawful, that would otherwise create liability;"
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Content that may infringe or violate any patent, trademark, trade secret, copyright, right of privacy, right of publicity or other intellectual or other right of any party;"
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Private information of any third party (e.g., addresses, phone numbers, email addresses, Social Security numbers and credit card numbers); and"
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Viruses, corrupted data or other harmful, disruptive or destructive files or code."
) %>
)}
</li>
</ul>
<p>
<%= pgettext(
{pgettext(
"terms",
"Also, you agree that you will not do any of the following in connection with the Service or other users:"
) %>
)}
</p>
<ul>
<li>
<%= pgettext(
{pgettext(
"terms",
"Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service or that could damage, disable, overburden or impair the functioning of the Service;"
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Impersonate or post on behalf of any person or entity or otherwise misrepresent your affiliation with a person or entity;"
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Collect any personal information about other users, or intimidate, threaten, stalk or otherwise harass other users of the Service;"
) %>
)}
</li>
<li>
<%= pgettext(
{pgettext(
"terms",
"Circumvent or attempt to circumvent any filtering, security measures, rate limits or other features designed to protect the Service, users of the Service, or third parties."
) %>
)}
</li>
</ul>
<p>
<%= pgettext(
{pgettext(
"terms",
"Finally, your use of the Service is also subject to acceptance of <a href=\"/rules\">the instance's own specific rules</a> regarding the code of conduct and moderation rules. Breaking those rules may also result in your account being disabled or suspended."
)
|> raw %>
|> raw}
</p>
<h3>
<%= pgettext("terms", "Our responsibility") %>
{pgettext("terms", "Our responsibility")}
</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"Instance administrators (and community moderators, given the relevant access) are responsible for monitoring and acting on flagged content and other user reports, and have the right and responsibility to remove or edit content that is not aligned to this Instance set of rules, or to suspend, block or ban (temporarily or permanently) any account, community, or instance for breaking these terms, or for other behaviours that they deem inappropriate, threatening, offensive, or harmful."
) %>
)}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"Instance administrators should ensure that every community hosted on the instance is properly moderated according to the defined rules."
) %>
)}
</p>
<h3><%= pgettext("terms", "Source code") %></h3>
<h3>{pgettext("terms", "Source code")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"This Service runs on a Mobilizon instance. This source code is licensed under an <a href=\"https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)\">AGPLv3 license</a> which means you are allowed to and even encouraged to take the source code, modify it and use it."
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"For full details about the Mobilizon software <a href=\"https://mobilizon.org\">see here</a>."
)
|> raw %>
|> raw}
</p>
<!-- Links -->
<h3><%= pgettext("terms", "Hyperlinks and Third Party Content") %></h3>
<h3>{pgettext("terms", "Hyperlinks and Third Party Content")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"<b>%{instance_name}</b> makes no claim or representation regarding, and accepts no responsibility for third party websites accessible by hyperlink from the Service or websites linking to the Service. When you leave the Service, you should be aware that these Terms and our policies no longer govern. The inclusion of any link does not imply endorsement by <b>%{instance_name}</b> of the site. Use of any such linked website is at the user's own risk.",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"A lot of the content on the Service is from you and others, and we don't review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content."
) %>
)}
</p>
<!-- Termination -->
<h3><%= pgettext("terms", "Termination") %></h3>
<h3>{pgettext("terms", "Termination")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service."
) %>
)}
</p>
<h3><%= pgettext("terms", "Entire Agreement") %></h3>
<h3>{pgettext("terms", "Entire Agreement")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"These Terms constitute the entire agreement between you and <b>%{instance_name}</b> regarding the use of the Service, superseding any prior agreements between you and <b>%{instance_name}</b> relating to your use of the Service.",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</p>
<!-- Feedback -->
<h3><%= pgettext("terms", "Feedback") %></h3>
<h3>{pgettext("terms", "Feedback")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"We love feedback. Please let us know what you think of the Service, these Terms and, in general, <b>%{instance_name}</b>.",
%{instance_name: @instance_name}
)
|> raw %>
|> raw}
</p>
<!-- Questions -->
<h3><%= pgettext("terms", "Questions & Contact Information") %></h3>
<h3>{pgettext("terms", "Questions & Contact Information")}</h3>
<p>
<%= pgettext(
{pgettext(
"terms",
"Questions or comments about the Service may be directed to us at %{contact}",
%{contact: @instance_contact}
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"This document is licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>. It was last updated June 22, 2020."
)
|> raw %>
|> raw}
</p>
<p>
<%= pgettext(
{pgettext(
"terms",
"Originally adapted from the <a href=\"https://joindiaspora.com/terms\">Diaspora*</a> and <a href=\"https://github.com/appdotnet/terms-of-service\">App.net</a> privacy policies, also licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a>."
)
|> raw %>
|> raw}
</p>

View File

@@ -1,34 +1,34 @@
<%= case @activity.subject do %>
<% :event_comment_mention -> %>
<%= dgettext("activity", "%{profile} mentionned you in a comment under event %{event}.", %{
{dgettext("activity", "%{profile} mentionned you in a comment under event %{event}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% :participation_event_comment -> %>
<%= dgettext("activity", "%{profile} has posted an announcement under event %{event}.", %{
{dgettext("activity", "%{profile} has posted an announcement under event %{event}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% :event_new_comment -> %>
<%= if @activity.subject_params["comment_reply_to"] do %>
<%= dgettext("activity", "%{profile} has posted a new reply under your event %{event}.", %{
{dgettext("activity", "%{profile} has posted a new reply under your event %{event}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}#comment-#{@activity.subject_params["comment_reply_to_uuid"]}-#{@activity.subject_params["comment_uuid"]}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% else %>
<%= dgettext(
{dgettext(
"activity",
"%{profile} has posted a new comment under your event %{event}.",
%{
@@ -39,6 +39,6 @@
</a>"
}
)
|> raw %>
|> raw}
<% end %>
<% end %>

View File

@@ -1,16 +1,16 @@
<%= case @activity.subject do %>
<% :conversation_created -> %>
<%= dgettext("activity", "%{profile} mentionned you in a %{conversation}.", %{
{dgettext("activity", "%{profile} mentionned you in a %{conversation}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
conversation:
"<a href=\"#{~p"/conversations/#{@activity.subject_params["conversation_participant_id"]}" |> url() |> URI.decode()}\">conversation</a>"
})
|> raw %>
|> raw}
<% :conversation_replied -> %>
<%= dgettext("activity", "%{profile} replied you in a %{conversation}.", %{
{dgettext("activity", "%{profile} replied you in a %{conversation}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
conversation:
"<a href=\"#{~p"/conversations/#{@activity.subject_params["conversation_participant_id"]}" |> url() |> URI.decode()}\">conversation</a>"
})
|> raw %>
|> raw}
<% end %>

View File

@@ -1,40 +1,40 @@
<%= case @activity.subject do %>
<% :discussion_created -> %>
<%= dgettext("activity", "%{profile} created the discussion %{discussion}.", %{
{dgettext("activity", "%{profile} created the discussion %{discussion}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
discussion:
"<a href=\"#{~p"/#{Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group)}/c/#{@activity.subject_params["discussion_slug"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["discussion_title"])}</a>"
})
|> raw %>
|> raw}
<% :discussion_replied -> %>
<%= dgettext("activity", "%{profile} replied to the discussion %{discussion}.", %{
{dgettext("activity", "%{profile} replied to the discussion %{discussion}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
discussion:
"<a href=\"#{~p"/#{Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group)}/c/#{@activity.subject_params["discussion_slug"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["discussion_title"])}</a>"
})
|> raw %>
|> raw}
<% :discussion_renamed -> %>
<%= dgettext("activity", "%{profile} renamed the discussion %{discussion}.", %{
{dgettext("activity", "%{profile} renamed the discussion %{discussion}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
discussion:
"<a href=\"#{~p"/#{Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group)}/c/#{@activity.subject_params["discussion_slug"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["discussion_title"])}</a>"
})
|> raw %>
|> raw}
<% :discussion_archived -> %>
<%= dgettext("activity", "%{profile} archived the discussion %{discussion}.", %{
{dgettext("activity", "%{profile} archived the discussion %{discussion}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
discussion:
"<a href=\"#{~p"/#{Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group)}/c/#{@activity.subject_params["discussion_slug"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["discussion_title"])}</a>"
})
|> raw %>
|> raw}
<% :discussion_deleted -> %>
<%= dgettext("activity", "%{profile} deleted the discussion %{discussion}.", %{
{dgettext("activity", "%{profile} deleted the discussion %{discussion}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
discussion: "<b>#{escape_html(@activity.subject_params["discussion_title"])}</b>"
})
|> raw %>
|> raw}
<% end %>

View File

@@ -1,53 +1,53 @@
<%= case @activity.subject do %>
<% :event_created -> %>
<%= dgettext("activity", "The event %{event} was created by %{profile}.", %{
{dgettext("activity", "The event %{event} was created by %{profile}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% :event_updated -> %>
<%= dgettext("activity", "The event %{event} was updated by %{profile}.", %{
{dgettext("activity", "The event %{event} was updated by %{profile}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% :event_deleted -> %>
<%= dgettext("activity", "The event %{event} was deleted by %{profile}.", %{
{dgettext("activity", "The event %{event} was deleted by %{profile}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event: "<b>#{escape_html(@activity.subject_params["event_title"])}</b>"
})
|> raw %>
|> raw}
<% :comment_posted -> %>
<%= if @activity.subject_params["comment_reply_to"] do %>
<%= dgettext("activity", "%{profile} replied to a comment on the event %{event}.", %{
{dgettext("activity", "%{profile} replied to a comment on the event %{event}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% else %>
<%= dgettext("activity", "%{profile} posted a comment on the event %{event}.", %{
{dgettext("activity", "%{profile} posted a comment on the event %{event}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["event_title"])}
</a>"
})
|> raw %>
|> raw}
<% end %>
<% :event_new_participation -> %>
<%= dgettext("activity", "%{profile} joined your event %{event}.", %{
{dgettext("activity", "%{profile} joined your event %{event}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
event:
"<a href=\"#{~p"/events/#{@activity.subject_params["event_uuid"]}" |> url() |> URI.decode()}\">#{escape_html(@activity.subject_params["event_title"])}</a>"
})
|> raw %>
|> raw}
<% end %>

View File

@@ -1,20 +1,20 @@
<%= case @activity.subject do %>
<% :group_created -> %>
<%= dgettext("activity", "%{profile} created the group %{group}.", %{
{dgettext("activity", "%{profile} created the group %{group}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
group:
"<a href=\"#{~p"/@#{@activity.subject_params["group_federated_username"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["group_name"])}
</a>"
})
|> raw %>
|> raw}
<% :group_updated -> %>
<%= dgettext("activity", "%{profile} updated the group %{group}.", %{
{dgettext("activity", "%{profile} updated the group %{group}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
group:
"<a href=\"#{~p"/@#{@activity.subject_params["group_federated_username"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["group_name"])}
</a>"
})
|> raw %>
|> raw}
<% end %>

View File

@@ -1,58 +1,58 @@
<%= case @activity.subject do %>
<% :member_request -> %>
<%= dgettext("activity", "%{member} requested to join the group.", %{
{dgettext("activity", "%{member} requested to join the group.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>"
})
|> raw %>
|> raw}
<% :member_invited -> %>
<%= dgettext("activity", "%{member} was invited by %{profile}.", %{
{dgettext("activity", "%{member} was invited by %{profile}.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>",
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>"
})
|> raw %>
|> raw}
<% :member_accepted_invitation -> %>
<%= dgettext("activity", "%{member} accepted the invitation to join the group.", %{
{dgettext("activity", "%{member} accepted the invitation to join the group.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>"
})
|> raw %>
|> raw}
<% :member_rejected_invitation -> %>
<%= dgettext("activity", "%{member} rejected the invitation to join the group.", %{
{dgettext("activity", "%{member} rejected the invitation to join the group.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>"
})
|> raw %>
|> raw}
<% :member_joined -> %>
<%= dgettext("activity", "%{member} joined the group.", %{
{dgettext("activity", "%{member} joined the group.", %{
member:
"<b title=\"#{@activity.subject_params["member_actor_federated_username"]}\">#{escape_html(@activity.subject_params["member_actor_name"])}</b>"
})
|> raw %>
|> raw}
<% :member_added -> %>
<%= dgettext("activity", "%{profile} added the member %{member}.", %{
{dgettext("activity", "%{profile} added the member %{member}.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>",
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>"
})
|> raw %>
|> raw}
<% :member_approved -> %>
<%= dgettext("activity", "%{profile} approved the member %{member}.", %{
{dgettext("activity", "%{profile} approved the member %{member}.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>",
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>"
})
|> raw %>
|> raw}
<% :member_updated -> %>
<%= dgettext("activity", "%{profile} updated the member %{member}.", %{
{dgettext("activity", "%{profile} updated the member %{member}.", %{
member: "<b>#{escape_html(@activity.subject_params["member_actor_name"])}</b>",
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>"
})
|> raw %>
|> raw}
<% :member_removed -> %>
<%= dgettext("activity", "%{profile} excluded member %{member}.", %{
{dgettext("activity", "%{profile} excluded member %{member}.", %{
member: "<b>#{@activity.subject_params["member_actor_name"]}</b>",
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>"
})
|> raw %>
|> raw}
<% :member_quit -> %>
<%= dgettext("activity", "%{profile} quit the group.", %{
{dgettext("activity", "%{profile} quit the group.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>"
})
|> raw %>
|> raw}
<% end %>

View File

@@ -1,26 +1,26 @@
<%= case @activity.subject do %>
<% :post_created -> %>
<%= dgettext("activity", "The post %{post} was created by %{profile}.", %{
{dgettext("activity", "The post %{post} was created by %{profile}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
post:
"<a href=\"#{~p"/p/#{@activity.subject_params["post_slug"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["post_title"])}
</a>"
})
|> raw %>
|> raw}
<% :post_updated -> %>
<%= dgettext("activity", "The post %{post} was updated by %{profile}.", %{
{dgettext("activity", "The post %{post} was updated by %{profile}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
post:
"<a href=\"#{~p"/p/#{@activity.subject_params["post_slug"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["post_title"])}
</a>"
})
|> raw %>
|> raw}
<% :post_deleted -> %>
<%= dgettext("activity", "The post %{post} was deleted by %{profile}.", %{
{dgettext("activity", "The post %{post} was deleted by %{profile}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
post: "<b>#{escape_html(@activity.subject_params["post_title"])}</b>"
})
|> raw %>
|> raw}
<% end %>

View File

@@ -1,27 +1,27 @@
<%= case @activity.subject do %>
<% :resource_created -> %>
<%= if @activity.subject_params["is_folder"] do %>
<%= dgettext("activity", "%{profile} created the folder %{resource}.", %{
{dgettext("activity", "%{profile} created the folder %{resource}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
resource:
"<a href=\"#{~p"/resource/#{@activity.subject_params["resource_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["resource_title"])}
</a>"
})
|> raw %>
|> raw}
<% else %>
<%= dgettext("activity", "%{profile} created the resource %{resource}.", %{
{dgettext("activity", "%{profile} created the resource %{resource}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
resource:
"<a href=\"#{~p"/resource/#{@activity.subject_params["resource_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["resource_title"])}
</a>"
})
|> raw %>
|> raw}
<% end %>
<% :resource_renamed -> %>
<%= if @activity.subject_params["is_folder"] do %>
<%= dgettext(
{dgettext(
"activity",
"%{profile} renamed the folder from %{old_resource_title} to %{resource}.",
%{
@@ -34,9 +34,9 @@
"<b>#{escape_html(@activity.subject_params["old_resource_title"])}</b>"
}
)
|> raw %>
|> raw}
<% else %>
<%= dgettext(
{dgettext(
"activity",
"%{profile} renamed the resource from %{old_resource_title} to %{resource}.",
%{
@@ -49,40 +49,40 @@
"<b>#{escape_html(@activity.subject_params["old_resource_title"])}</b>"
}
)
|> raw %>
|> raw}
<% end %>
<% :resource_moved -> %>
<%= if @activity.subject_params["is_folder"] do %>
<%= dgettext("activity", "%{profile} moved the folder %{resource}.", %{
{dgettext("activity", "%{profile} moved the folder %{resource}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
resource:
"<a href=\"#{~p"/resource/#{@activity.subject_params["resource_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["resource_title"])}
</a>"
})
|> raw %>
|> raw}
<% else %>
<%= dgettext("activity", "%{profile} moved the resource %{resource}.", %{
{dgettext("activity", "%{profile} moved the resource %{resource}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
resource:
"<a href=\"#{~p"/resource/#{@activity.subject_params["resource_uuid"]}" |> url() |> URI.decode()}\">
#{escape_html(@activity.subject_params["resource_title"])}
</a>"
})
|> raw %>
|> raw}
<% end %>
<% :resource_deleted -> %>
<%= if @activity.subject_params["is_folder"] do %>
<%= dgettext("activity", "%{profile} deleted the folder %{resource}.", %{
{dgettext("activity", "%{profile} deleted the folder %{resource}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
resource: "<b>#{escape_html(@activity.subject_params["resource_title"])}</b>"
})
|> raw %>
|> raw}
<% else %>
<%= dgettext("activity", "%{profile} deleted the resource %{resource}.", %{
{dgettext("activity", "%{profile} deleted the resource %{resource}.", %{
profile: "<b>#{escaped_display_name_and_username(@activity.author)}</b>",
resource: "<b>#{escape_html(@activity.subject_params["resource_title"])}</b>"
})
|> raw %>
|> raw}
<% end %>
<% end %>

View File

@@ -15,10 +15,10 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Your participation to %{event} on %{instance} has been cancelled!",
{gettext("Your participation to %{event} on %{instance} has been cancelled!",
event: @event.title,
instance: @instance_name
) %>
)}
</h1>
</td>
</tr>
@@ -47,7 +47,7 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Your instance's moderation team has decided to suspend %{actor_name} (%{actor_address}). All of their events have been removed and your participation to event %{event} cancelled.",
actor_name: @actor.name || @actor.preferred_username,
event: @event.title,
@@ -56,7 +56,7 @@
do: "@#{@actor.preferred_username}@#{@actor.domain}",
else: "@#{@actor.preferred_username}"
)
) %>
)}
</p>
</td>
</tr>

View File

@@ -1,10 +1,10 @@
<%= case @role do %>
<% :administrator -> %>
<b><%= gettext("Administrator") %></b>
<b>{gettext("Administrator")}</b>
<% :moderator -> %>
<b><%= gettext("Moderator") %></b>
<b>{gettext("Moderator")}</b>
<% :user -> %>
<b><%= gettext("User") %></b>
<b>{gettext("User")}</b>
<% :pending -> %>
<b><%= gettext("Pending") %></b>
<b>{gettext("Pending")}</b>
<% end %>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("An administrator manually confirmed your account") %>
{gettext("An administrator manually confirmed your account")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Hi there! We just wanted to inform you that an administrator from <b>%{instance}</b> just manually confirmed your account.",
%{instance: @instance_name}
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -59,7 +59,7 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("You may now login using your credentials on the service.") %>
{gettext("You may now login using your credentials on the service.")}
</p>
</td>
</tr>
@@ -76,7 +76,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Login on %{instance}", %{instance: @instance_name}) %>
{gettext("Login on %{instance}", %{instance: @instance_name})}
</a>
</td>
</tr>
@@ -93,14 +93,14 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If something doesn't feel right to you, please contact the instance administrator through the contact methods %{start_link}on the instance's about page%{end_link}.",
%{
start_link: "<a href=\"#{Mobilizon.Web.Endpoint.url()}/about/instance\">",
end_link: "</a>"
}
)
|> raw %>
|> raw}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("An administrator manually changed the email attached to your account") %>
{gettext("An administrator manually changed the email attached to your account")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Hi there! We just wanted to inform you that an administrator from <b>%{instance}</b> just manually changed your account email from <b>%{old_email}</b> to <b>%{new_email}</b> (this one).",
%{instance: @instance_name, old_email: @old_email, new_email: @new_email}
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -59,14 +59,14 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If something doesn't feel right to you, please contact the instance administrator through the contact methods %{start_link}on the instance's about page%{end_link}.",
%{
start_link: "<a href=\"#{Mobilizon.Web.Endpoint.url()}/about/instance\">",
end_link: "</a>"
}
)
|> raw %>
|> raw}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("An administrator manually changed the email attached to your account") %>
{gettext("An administrator manually changed the email attached to your account")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Hi there! We just wanted to inform you that an administrator from <b>%{instance}</b> just manually changed your account email from <b>%{old_email}</b> (this one) to <b>%{new_email}</b>.",
%{instance: @instance_name, old_email: @old_email, new_email: @new_email}
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -59,14 +59,14 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If something doesn't feel right to you, please contact the instance administrator through the contact methods %{start_link}on the instance's about page%{end_link}.",
%{
start_link: "<a href=\"#{Mobilizon.Web.Endpoint.url()}/about/instance\">",
end_link: "</a>"
}
)
|> raw %>
|> raw}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("An administrator changed your role") %>
{gettext("An administrator changed your role")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Hi there! We just wanted to inform you that an administrator from <b>%{instance}</b> just changed your account role.",
%{instance: @instance_name}
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -61,18 +61,18 @@
<table width="100%">
<tr>
<td bgcolor="#ffffff" align="left">
<%= gettext("Old role") %>
{gettext("Old role")}
</td>
<td bgcolor="#ffffff" align="left">
<%= render("admin/_role.html", role: @old_role) %>
{render("admin/_role.html", role: @old_role)}
</td>
</tr>
<tr>
<td bgcolor="#ffffff" align="left">
<%= gettext("New role") %>
{gettext("New role")}
</td>
<td bgcolor="#ffffff" align="left">
<%= render("admin/_role.html", role: @new_role) %>
{render("admin/_role.html", role: @new_role)}
</td>
</tr>
</table>
@@ -85,14 +85,14 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If something doesn't feel right to you, please contact the instance administrator through the contact methods %{start_link}on the instance's about page%{end_link}.",
%{
start_link: "<a href=\"#{Mobilizon.Web.Endpoint.url()}/about/instance\">",
end_link: "</a>"
}
)
|> raw %>
|> raw}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Confirm your e-mail") %>
{gettext("Confirm your e-mail")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Hi there! You just registered to join this event: « <b>%{title}</b> ». Please confirm the e-mail address you provided:",
title: escape_html(@participant.event.title)
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -70,7 +70,7 @@
target="_blank"
style="font-size: 20px; font-family: 'Roboto', Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Confirm my e-mail address") %>
{gettext("Confirm my e-mail address")}
</a>
</td>
</tr>
@@ -87,9 +87,7 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
"If you wish to cancel your participation, simply click on the link below."
) %>
{gettext("If you wish to cancel your participation, simply click on the link below.")}
</p>
</td>
</tr>
@@ -110,7 +108,7 @@
target="_blank"
style="font-size: 20px; font-family: 'Roboto', Helvetica, Arial, sans-serif; color: #3C376E; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Cancel my attendance") %>
{gettext("Cancel my attendance")}
</a>
</td>
</tr>
@@ -127,7 +125,7 @@
style="padding: 20px 30px 40px 30px; color: #757199; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext("If you didn't trigger this email, you may safely ignore it.") %>
{gettext("If you didn't trigger this email, you may safely ignore it.")}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("An event is upcoming!") %>
{gettext("An event is upcoming!")}
</h1>
</td>
</tr>
@@ -44,7 +44,7 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("Get ready for %{title}", title: @participant.event.title) %>
{gettext("Get ready for %{title}", title: @participant.event.title)}
</p>
</td>
</tr>
@@ -62,7 +62,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Go to event page") %>
{gettext("Go to event page")}
</a>
</td>
</tr>
@@ -79,9 +79,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
) %>
)}
</p>
</td>
</tr>

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang={"#{@locale}"}>
<head>
<title><%= @subject %></title>
<title>{@subject}</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -77,7 +77,7 @@
<![endif]-->
</td>
</tr>
<%= @inner_content %>
{@inner_content}
<%= if Mobilizon.Config.instance_demo_mode?() do %>
<!-- BETA WARNING -->
<tr>
@@ -102,14 +102,14 @@
style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<h2 style="font-size: 25px; font-weight: 400; color: #D35204; margin: 0;">
<%= gettext("Warning") %>
{gettext("Warning")}
</h2>
<br />
<p style="margin: 0; color: #3A384C">
<%= gettext("This is a demonstration site to test Mobilizon.") %>
{gettext("This is a demonstration site to test Mobilizon.")}
</p>
<p style="margin: 0; color: #3A384C;">
<b><%= gettext("Please do not use it for real purposes.") %></b>
<b>{gettext("Please do not use it for real purposes.")}</b>
</p>
</td>
</tr>
@@ -139,7 +139,7 @@
style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<h2 style="font-size: 20px; font-weight: 400; color: #FFFFFF; margin: 0;">
<%= gettext("Need help? Is something not working as expected?") %>
{gettext("Need help? Is something not working as expected?")}
</h2>
<p style="margin: 0;">
<a
@@ -147,7 +147,7 @@
target="_blank"
style="color: #FFFFFF;"
>
<%= gettext("Ask the community on Framacolibri") %>
{gettext("Ask the community on Framacolibri")}
</a>
</p>
</td>
@@ -179,18 +179,18 @@
<%= if @offer_unsupscription do %>
<p>
<a href={"#{Mobilizon.Web.Endpoint.url()}/settings/notifications"}>
<%= gettext("Manage your notification settings") %>
{gettext("Manage your notification settings")}
</a>
</p>
<% end %>
<p style="margin: 0;">
<%= gettext("<b>%{instance}</b> is powered by Mobilizon.",
{gettext("<b>%{instance}</b> is powered by Mobilizon.",
instance: @instance_name
)
|> raw %>
|> raw}
<br />
<a href="https://mobilizon.org">
<%= gettext("Learn more about Mobilizon here!") %>
{gettext("Learn more about Mobilizon here!")}
</a>
</p>
</td>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= @subject %>
{@subject}
</h1>
</td>
</tr>
@@ -47,7 +47,7 @@
align="center"
style="border-radius: 3px; text-align: left; padding: 10px 5% 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400;line-height: 25px;"
>
<%= dgettext(
{dgettext(
"activity",
"%{profile} has posted a public announcement under event %{event}.",
%{
@@ -59,7 +59,7 @@
</a>"
}
)
|> raw %>
|> raw}
</td>
</tr>
</table>
@@ -82,7 +82,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Visit event page") %>
{gettext("Visit event page")}
</a>
</td>
</tr>
@@ -104,7 +104,7 @@
align="center"
style="border-radius: 3px; text-align: left; padding: 10px 5% 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400;line-height: 25px;"
>
<%= dgettext(
{dgettext(
"activity",
"%{profile} has posted a private announcement about event %{event}.",
%{
@@ -114,11 +114,11 @@
"<a href=\"#{~p"/events/#{@activity.subject_params["conversation_event_uuid"]}" |> url() |> URI.decode()}\">#{escape_html(@activity.subject_params["conversation_event_title"])}</a>"
}
)
|> raw %>
<%= dgettext(
|> raw}
{dgettext(
"activity",
"It might give details on how to join the event, so make sure to read it appropriately."
) %>
)}
</td>
</tr>
</table>
@@ -133,9 +133,9 @@
<tr>
<td align="center">
<blockquote style="border-left-width: 0.25rem;border-left-color: #e2e8f0;border-left-style: solid;padding-left: 1em;margin: 0;text-align: start;color: #474467;font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400;line-height: 25px;">
<%= @activity.subject_params["conversation_text"]
{@activity.subject_params["conversation_text"]
|> sanitize_to_basic_html()
|> raw() %>
|> raw()}
</blockquote>
</td>
</tr>
@@ -153,10 +153,10 @@
align="center"
style="border-radius: 3px; text-align: left; padding: 10px 5% 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 16px; font-weight: 400;line-height: 25px;"
>
<%= dgettext(
{dgettext(
"activity",
"This information is sent privately to you as a person who registered for this event. Share the informations above with other people with caution."
) %>
)}
</td>
</tr>
</table>
@@ -179,7 +179,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Visit event page") %>
{gettext("Visit event page")}
</a>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Confirm new email") %>
{gettext("Confirm new email")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Hi there! It seems like you wanted to change the email address linked to your account on <b>%{instance}</b>. If you still wish to do so, please click the button below to confirm the change. You will then be able to log in to %{instance} with this new email address.",
%{instance: @instance_name}
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -65,7 +65,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Verify your email address") %>
{gettext("Verify your email address")}
</a>
</td>
</tr>
@@ -82,7 +82,7 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext("If you didn't trigger the change yourself, please ignore this message.") %>
{gettext("If you didn't trigger the change yourself, please ignore this message.")}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("New email confirmation") %>
{gettext("New email confirmation")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"The email address for your account on <b>%{host}</b> is being changed to:",
host: @instance_name
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -60,7 +60,7 @@
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<%= @new_email %>
{@new_email}
</td>
</tr>
</table>
@@ -76,10 +76,10 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p>
<%= gettext(
{gettext(
"If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}.",
host: @instance_name
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Well done!") %>
{gettext("Well done!")}
</h1>
</td>
</tr>
@@ -44,9 +44,7 @@
style="padding: 20px 30px 30px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
"If you received this email, the email configuration seems to be correct."
) %>
{gettext("If you received this email, the email configuration seems to be correct.")}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= @subject %>
{@subject}
</h1>
</td>
</tr>
@@ -50,19 +50,19 @@
<% :one_week -> %>
<% dgettext("activity", "Here's your weekly activity recap") %>
<% :one_hour -> %>
<%= dngettext(
{dngettext(
"activity",
"There has been an activity!",
"There has been some activity!",
@total_number_activities
) %>
)}
<% false -> %>
<%= dngettext(
{dngettext(
"activity",
"There has been an activity!",
"There has been some activity!",
@total_number_activities
) %>
)}
<% end %>
</p>
</td>
@@ -132,8 +132,8 @@
target="_blank"
style="text-decoration: none;color: #474467;font-family: 'Roboto', Helvetica, Arial, sans-serif;font-size: 18px;font-weight: bold;line-height: 25px;"
>
<%= hd(group_activities).group.name ||
"@#{Mobilizon.Actors.Actor.preferred_username_and_domain(hd(group_activities).group)}" %>
{hd(group_activities).group.name ||
"@#{Mobilizon.Actors.Actor.preferred_username_and_domain(hd(group_activities).group)}"}
</a>
</td>
</tr>
@@ -149,9 +149,9 @@
target="_blank"
style="text-decoration: none;display: block;color: #7a7a7a;font-family: 'Roboto', Helvetica, Arial, sans-serif;font-size: 16px;font-weight: 400;line-height: 25px;"
>
@<%= Mobilizon.Actors.Actor.preferred_username_and_domain(
@{Mobilizon.Actors.Actor.preferred_username_and_domain(
hd(group_activities).group
) %>
)}
</a>
</td>
</tr>
@@ -170,42 +170,42 @@
<p style="margin: 0;">
<%= case activity.type do %>
<% :discussion -> %>
<%= render("activity/_discussion_activity_item.html",
{render("activity/_discussion_activity_item.html",
activity: activity
) %>
)}
<% :conversation -> %>
<%= render("activity/_conversation_activity_item.html",
{render("activity/_conversation_activity_item.html",
activity: activity
) %>
)}
<% :event -> %>
<%= render("activity/_event_activity_item.html",
{render("activity/_event_activity_item.html",
activity: activity
) %>
)}
<% :group -> %>
<%= render("activity/_group_activity_item.html",
{render("activity/_group_activity_item.html",
activity: activity
) %>
)}
<% :member -> %>
<%= render("activity/_member_activity_item.html",
{render("activity/_member_activity_item.html",
activity: activity
) %>
)}
<% :post -> %>
<%= render("activity/_post_activity_item.html",
{render("activity/_post_activity_item.html",
activity: activity
) %>
)}
<% :resource -> %>
<%= render("activity/_resource_activity_item.html",
{render("activity/_resource_activity_item.html",
activity: activity
) %>
)}
<% :comment -> %>
<%= render("activity/_comment_activity_item.html",
{render("activity/_comment_activity_item.html",
activity: activity
) %>
)}
<% end %>
</p>
<%= unless @single_activity do %>
<em>
<%= datetime_to_string(activity.inserted_at, @locale, :short) %>
{datetime_to_string(activity.inserted_at, @locale, :short)}
</em>
<% end %>
</li>
@@ -227,13 +227,13 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= dngettext(
{dngettext(
"activity",
"View one more activity",
"View %{count} more activities",
length(group_activities) - 5,
%{count: length(group_activities) - 5}
) %>
)}
</a>
</td>
</tr>
@@ -257,7 +257,7 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= dgettext(
{dgettext(
"activity",
"Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}.",
%{
@@ -265,7 +265,7 @@
tag_end: "</a>"
}
)
|> raw %>
|> raw}
</p>
</td>
</tr>

View File

@@ -15,9 +15,9 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("%{group} scheduled a new event",
{gettext("%{group} scheduled a new event",
group: Mobilizon.Actors.Actor.display_name(@group)
) %>
)}
</h1>
</td>
</tr>
@@ -45,12 +45,12 @@
align="left"
style="padding: 20px 15px 0px 15px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<%= render("participation/event_card.html",
{render("participation/event_card.html",
event: @event,
timezone: @timezone,
locale: @locale,
action: "event"
) %>
)}
</td>
</tr>
</table>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("You're going!") %>
{gettext("You're going!")}
</h1>
</td>
</tr>
@@ -44,10 +44,10 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("You recently requested to attend <b>%{title}</b>.",
{gettext("You recently requested to attend <b>%{title}</b>.",
title: escape_html(@event.title)
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -58,9 +58,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"Good news: one of the event organizers just approved your request. Update your calendar, because you're on the guest list now!"
) %>
)}
</p>
</td>
</tr>
@@ -78,7 +78,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Visit event page") %>
{gettext("Visit event page")}
</a>
</td>
</tr>
@@ -95,9 +95,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"Would you wish to update or cancel your attendance, simply access the event page through the link above and click on the Attending button."
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("You're going!") %>
{gettext("You're going!")}
</h1>
</td>
</tr>
@@ -44,10 +44,10 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("You recently requested to attend <b>%{title}</b>.",
{gettext("You recently requested to attend <b>%{title}</b>.",
title: escape_html(@event.title)
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -58,9 +58,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"You have now confirmed your participation. Update your calendar, because you're on the guest list now!"
) %>
)}
</p>
</td>
</tr>
@@ -78,7 +78,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Visit event page") %>
{gettext("Visit event page")}
</a>
</td>
</tr>
@@ -96,9 +96,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If you wish to cancel your participation, simply click on the link below."
) %>
)}
</p>
</td>
</tr>
@@ -119,7 +119,7 @@
target="_blank"
style="font-size: 20px; font-family: 'Roboto', Helvetica, Arial, sans-serif; color: #3C376E; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Cancel my attendance") %>
{gettext("Cancel my attendance")}
</a>
</td>
</tr>
@@ -137,9 +137,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"Would you wish to update or cancel your attendance, simply access the event page through the link above and click on the Attending button."
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Sorry! You're not going.") %>
{gettext("Sorry! You're not going.")}
</h1>
</td>
</tr>
@@ -44,10 +44,10 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("You issued a request to attend <b>%{title}</b>.",
{gettext("You issued a request to attend <b>%{title}</b>.",
title: escape_html(@event.title)
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -58,7 +58,7 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext("Unfortunately, the organizers rejected your request.") %>
{gettext("Unfortunately, the organizers rejected your request.")}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Event update!") %>
{gettext("Event update!")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"There have been changes for <b>%{title}</b> so we'd thought we'd let you know.",
title: escape_html(@old_event.title)
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -65,13 +65,13 @@
<b>
<%= case @event.status do %>
<% :confirmed -> %>
<%= gettext("This event has been confirmed") %>
{gettext("This event has been confirmed")}
<% :tentative -> %>
<%= gettext(
{gettext(
"This event has yet to be confirmed: organizers will let you know if they do confirm it."
) %>
)}
<% :cancelled -> %>
<%= gettext("This event has been cancelled by its organizers. Sorry!") %>
{gettext("This event has been cancelled by its organizers. Sorry!")}
<% end %>
</b>
</td>
@@ -80,57 +80,57 @@
<%= if MapSet.member?(@changes, :title) do %>
<tr>
<td bgcolor="#ffffff" align="left">
<%= gettext("Event title") %>
{gettext("Event title")}
</td>
<td bgcolor="#ffffff" align="left">
<b><%= @event.title %></b>
<b>{@event.title}</b>
</td>
</tr>
<% end %>
<%= if MapSet.member?(@changes, :begins_on) do %>
<tr>
<td bgcolor="#ffffff" align="left">
<%= gettext("Start") %>
{gettext("Start")}
</td>
<td bgcolor="#ffffff" align="left">
<%= render("date/event_tz_date.html",
{render("date/event_tz_date.html",
event: @event,
date: @event.begins_on,
timezone: @timezone,
locale: @locale
) %>
)}
</td>
</tr>
<% end %>
<%= if MapSet.member?(@changes, :ends_on) && !is_nil(@event.ends_on) do %>
<tr>
<td bgcolor="#ffffff" align="left">
<%= gettext("End") %>
{gettext("End")}
</td>
<td bgcolor="#ffffff" align="left">
<%= render("date/event_tz_date.html",
{render("date/event_tz_date.html",
event: @event,
date: @event.ends_on,
timezone: @timezone,
locale: @locale
) %>
)}
</td>
</tr>
<% end %>
<%= if MapSet.member?(@changes, :physical_address) do %>
<tr>
<td bgcolor="#ffffff" align="left">
<%= gettext("Location") %>
{gettext("Location")}
</td>
<%= unless is_nil(@event.physical_address) do %>
<td bgcolor="#ffffff" align="left">
<p>
<%= Mobilizon.Addresses.Address.representation(@event.physical_address) %>
{Mobilizon.Addresses.Address.representation(@event.physical_address)}
</p>
</td>
<% else %>
<td bgcolor="#ffffff" align="left">
<%= gettext("Location address was removed") %>
{gettext("Location address was removed")}
</td>
<% end %>
</tr>
@@ -152,7 +152,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Visit the updated event page") %>
{gettext("Visit the updated event page")}
</a>
</td>
</tr>
@@ -169,11 +169,11 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= ngettext(
{ngettext(
"Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button.",
"Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button.",
1
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Come along!") %>
{gettext("Come along!")}
</h1>
</td>
</tr>
@@ -44,14 +44,14 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"<b>%{inviter}</b> just invited you to join their group %{link_start}<b>%{group}</b>%{link_end}",
group: escape_html(display_name(@group)),
inviter: escape_html(display_name(@inviter)),
link_start: "<a href=\"#{@group.url}\">",
link_end: "</a>"
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -62,7 +62,7 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext("To accept this invitation, head over to your groups.") %>
{gettext("To accept this invitation, head over to your groups.")}
</p>
</td>
</tr>
@@ -80,7 +80,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("See my groups") %>
{gettext("See my groups")}
</a>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Until next time!") %>
{gettext("Until next time!")}
</h1>
</td>
</tr>
@@ -44,13 +44,13 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"You have been removed from group %{link_start}<b>%{group}</b>%{link_end}. You will not be able to access this group's private content anymore.",
group: escape_html(display_name(@group)),
link_start: "<a href=\"#{@group.url}\">",
link_end: "</a>"
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -61,9 +61,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If you feel this is an error, you may contact the group's administrators so that they can add you back."
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("You're in!") %>
{gettext("You're in!")}
</h1>
</td>
</tr>
@@ -44,14 +44,14 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved.",
group: escape_html(display_name(@group)),
link_start:
"<a href=\"#{~p"/@#{preferred_username_and_domain(@group)}" |> url() |> URI.decode()}\">",
link_end: "</a>"
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -73,7 +73,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("View the group") %>
{gettext("View the group")}
</a>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Sorry, not this time!") %>
{gettext("Sorry, not this time!")}
</h1>
</td>
</tr>
@@ -44,14 +44,14 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected.",
group: escape_html(display_name(@group)),
link_start:
"<a href=\"#{~p"/@#{preferred_username_and_domain(@group)}" |> url() |> URI.decode()}\">",
link_end: "</a>"
)
|> raw %>
|> raw}
</p>
</td>
</tr>

View File

@@ -15,10 +15,10 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("The group %{group} has been suspended on %{instance}!",
{gettext("The group %{group} has been suspended on %{instance}!",
group: display_name(@group),
instance: @instance_name
) %>
)}
</h1>
</td>
</tr>
@@ -47,12 +47,12 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Your instance's moderation team has decided to suspend <b>%{group_name}</b> (%{group_address}). You are no longer a member of this group.",
group_name: escape_html(display_name(@group)),
group_address: preferred_username_and_domain(@group)
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -64,9 +64,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"As this group was located on this instance, all of its data has been irretrievably deleted."
) %>
)}
</p>
</td>
</tr>
@@ -78,9 +78,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"As this group was located on another instance, it will continue to work for other instances than this one."
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Want to connect?") %>
{gettext("Want to connect?")}
</h1>
</td>
</tr>
@@ -44,15 +44,15 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("<b>%{name}</b> just requested to follow your instance.",
{gettext("<b>%{name}</b> just requested to follow your instance.",
name: escape_html(display_name_and_username(@follower))
)
|> raw %>
|> raw}
<br />
<%= if @follower.type == :Application do %>
<%= gettext("If you accept, this instance will receive all of your public events.") %>
{gettext("If you accept, this instance will receive all of your public events.")}
<% else %>
<%= gettext("If you accept, this profile will receive all of your public events.") %>
{gettext("If you accept, this profile will receive all of your public events.")}
<% end %>
</p>
</td>
@@ -65,10 +65,10 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"Note: %{name} following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too.",
name: escape_html(display_name_and_username(@follower))
) %>
)}
</p>
</td>
</tr>
@@ -81,11 +81,9 @@
>
<p style="margin: 0">
<%= if @follower.type == :Application do %>
<%= gettext(
"To accept this invitation, head over to the instance's admin settings."
) %>
{gettext("To accept this invitation, head over to the instance's admin settings.")}
<% else %>
<%= gettext("To accept this invitation, head over to the profile's admin page.") %>
{gettext("To accept this invitation, head over to the profile's admin page.")}
<% end %>
</p>
</td>
@@ -107,7 +105,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("View the details") %>
{gettext("View the details")}
</a>
<% else %>
<a
@@ -117,7 +115,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("View the details") %>
{gettext("View the details")}
</a>
<% end %>
</td>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("On the agenda this week") %>
{gettext("On the agenda this week")}
</h1>
</td>
</tr>
@@ -44,12 +44,12 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= ngettext(
{ngettext(
"You have one event this week:",
"You have %{total} events this week:",
@total,
total: @total
) %>
)}
</p>
</td>
</tr>
@@ -63,22 +63,22 @@
<ul style="margin: 0;padding: 0;list-style-type: none;">
<%= for participation <- @participations do %>
<li style="padding: 0; border: 1px solid rgba(0,0,0,.125); border-radius: .25rem; margin-bottom: 10px">
<%= render("participation/event_card.html",
{render("participation/event_card.html",
event: participation.event,
timezone: @timezone,
locale: @locale,
action: "participation"
) %>
)}
</li>
<% end %>
</ul>
<% else %>
<%= render("participation/event_card.html",
{render("participation/event_card.html",
event: @participation.event,
timezone: @timezone,
locale: @locale,
action: "participation"
) %>
)}
<% end %>
</td>
</tr>
@@ -89,11 +89,11 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= ngettext(
{ngettext(
"Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button.",
"Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button.",
@total
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("What's up today?") %>
{gettext("What's up today?")}
</h1>
</td>
</tr>
@@ -44,9 +44,9 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= ngettext("You have one event today:", "You have %{total} events today:", @total,
{ngettext("You have one event today:", "You have %{total} events today:", @total,
total: @total
) %>
)}
</p>
</td>
</tr>
@@ -60,22 +60,22 @@
<ul style="margin: 0;">
<%= for participation <- @participations do %>
<li>
<%= render("participation/event_card.html",
{render("participation/event_card.html",
event: participation.event,
timezone: @timezone,
locale: @locale,
action: "participation"
) %>
)}
</li>
<% end %>
</ul>
<% else %>
<%= render("participation/event_card.html",
{render("participation/event_card.html",
event: @participation.event,
timezone: @timezone,
locale: @locale,
action: "participation"
) %>
)}
<% end %>
</td>
</tr>
@@ -86,11 +86,11 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= ngettext(
{ngettext(
"Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button.",
"Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button.",
@total
) %>
)}
</p>
</td>
</tr>

View File

@@ -49,14 +49,14 @@
style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;"
align="left"
>
<%= render("date/event_tz_date_range.html",
{render("date/event_tz_date_range.html",
event: @event,
start_date:
datetime_tz_convert(@event.begins_on, @event.options.timezone),
end_date: datetime_tz_convert(@event.ends_on, @event.options.timezone),
timezone: @timezone,
locale: @locale
) %>
)}
</p>
</td>
</tr>
@@ -87,7 +87,7 @@
style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;"
align="left"
>
<%= render_address(@event.physical_address) %>
{render_address(@event.physical_address)}
</p>
</td>
</tr>
@@ -118,7 +118,7 @@
style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;"
align="left"
>
<%= gettext("Online event") %>
{gettext("Online event")}
</p>
</td>
</tr>

View File

@@ -11,7 +11,7 @@
style="color: rgb(66,81,90); font-family: Helvetica,Arial,sans-serif; font-weight: 700; text-align: left; line-height: 1.4; text-decoration: none; vertical-align: baseline; font-size: 22px; letter-spacing: 0.2px; margin: 0 0 30px; padding: 0; border: 0;"
target="_blank"
>
<%= @event.title %>
{@event.title}
</a>
<div style="vertical-align: baseline; width: 100%; margin: 0 0 0 10px; padding: 0; border: 0;display: flex;">
<%= cond do %>
@@ -44,11 +44,11 @@
style="color: rgb(254,56,89); font-family: Helvetica,Arial,sans-serif; font-weight: normal; text-align: left; line-height: 1.3; text-decoration: none; vertical-align: baseline; margin: 0; padding: 0; border: 0;"
target="_blank"
>
<%= @event.attributed_to.name || @event.attributed_to.preferred_username %>
{@event.attributed_to.name || @event.attributed_to.preferred_username}
</a>
<% else %>
<span style="font-family: Helvetica,Arial,sans-serif; font-weight: normal; text-align: left; line-height: 1.3; text-decoration: none; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<%= @event.organizer_actor.name || @event.organizer_actor.preferred_username %>
{@event.organizer_actor.name || @event.organizer_actor.preferred_username}
</span>
<% end %>
</p>

View File

@@ -1,15 +1,15 @@
<%= if @event.picture do %>
<!-- event image -->
<%= render("participation/card/_picture.html", event: @event) %>
{render("participation/card/_picture.html", event: @event)}
<!-- event image end -->
<% end %>
<%= render("participation/card/_title.html", event: @event) %>
<%= render("participation/card/_metadata.html",
{render("participation/card/_title.html", event: @event)}
{render("participation/card/_metadata.html",
event: @event,
timezone: @timezone,
locale: @locale,
action: @action
) %>
)}
<%= case @action do %>
<% "participation" -> %>
<div
@@ -44,7 +44,7 @@
style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 20px; display: inline-block; border: 1px solid #3C376E; border-radius: 15px; white-space: nowrap; margin: 0; padding: 15px 25px; border: none;"
target="_blank"
>
<%= gettext("Manage your participation") %>
{gettext("Manage your participation")}
</a>
</td>
</tr>
@@ -88,7 +88,7 @@
style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 20px; display: inline-block; border: 1px solid #3C376E; border-radius: 15px; white-space: nowrap; margin: 0; padding: 15px 25px; border: none;"
target="_blank"
>
<%= gettext("Participate") %>
{gettext("Participate")}
</a>
</td>
</tr>
@@ -110,14 +110,14 @@
style="color: rgb(46,62,72); font-family: Helvetica,Arial,sans-serif; font-weight: 700; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0 0 7.5px; border: 0;"
align="left"
>
<%= gettext("Details") %>
{gettext("Details")}
</p>
<p
class="event-working__detail"
style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;"
align="left"
>
<%= process_description(@event.description) %>
{process_description(@event.description)}
</p>
<%= if String.length(@event.description) > 200 do %>
<p
@@ -129,7 +129,7 @@
style="color: rgb(254,56,89); font-family: Helvetica,Arial,sans-serif; font-weight: 400; text-align: left; line-height: 1.5; text-decoration: none; vertical-align: baseline; font-size: 16px; margin: 0; padding: 0; border: 0;"
target="_blank"
>
<%= gettext("Read more") %>
{gettext("Read more")}
</a>
</p>
<% end %>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Password reset") %>
{gettext("Password reset")}
</h1>
</td>
</tr>
@@ -44,15 +44,15 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("You requested a new password for your account on <b>%{instance}</b>.",
{gettext("You requested a new password for your account on <b>%{instance}</b>.",
instance: @instance_name
)
|> raw %>
|> raw}
</p>
<p style="margin: 0">
<%= gettext(
{gettext(
"Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
) %>
)}
</p>
</td>
</tr>
@@ -63,9 +63,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
) %>
)}
</p>
</td>
</tr>
@@ -83,7 +83,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #474467; display: inline-block;"
>
<%= gettext("Reset Password") %>
{gettext("Reset Password")}
</a>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("A request is pending!") %>
{gettext("A request is pending!")}
</h1>
</td>
</tr>
@@ -44,12 +44,12 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= ngettext(
{ngettext(
"You have one pending attendance request to process for the following event:",
"You have %{number_participation_requests} attendance requests to process for the following event:",
@total,
number_participation_requests: @total
) %>
)}
</p>
</td>
</tr>
@@ -59,12 +59,12 @@
align="left"
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<%= render("participation/event_card.html",
{render("participation/event_card.html",
event: @event,
timezone: @timezone,
locale: @locale,
action: nil
) %>
)}
</td>
</tr>
<tr>
@@ -86,7 +86,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Manage pending requests") %>
{gettext("Manage pending requests")}
</a>
</td>
</tr>
@@ -103,9 +103,9 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext(
{gettext(
"You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
) %>
)}
</p>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("Nearly there!") %>
{gettext("Nearly there!")}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext(
{gettext(
"You created an account on <b>%{host}</b> with this email address. You are one click away from activating it.",
host: @instance_name
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -59,7 +59,7 @@
style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;"
>
<p style="margin: 0">
<%= gettext("If you didn't trigger this email, you may safely ignore it.") %>
{gettext("If you didn't trigger this email, you may safely ignore it.")}
</p>
</td>
</tr>
@@ -77,7 +77,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Activate my account") %>
{gettext("Activate my account")}
</a>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("New report on <b>%{instance}</b>", instance: @instance_name) |> raw %>
{gettext("New report on <b>%{instance}</b>", instance: @instance_name) |> raw}
</h1>
</td>
</tr>
@@ -45,16 +45,16 @@
>
<p style="margin: 0;">
<%= if @report.reporter.type == :Application and @report.reporter.preferred_username == "relay" do %>
<%= gettext(
{gettext(
"Someone on <b>%{instance}</b> reported the following content for you to analyze:",
instance: escape_html(@report.reporter.domain)
)
|> raw %>
|> raw}
<% else %>
<%= gettext("<b>%{reporter}</b> reported the following content.",
{gettext("<b>%{reporter}</b> reported the following content.",
reporter: escape_html(display_name_and_username(@report.reporter))
)
|> raw %>
|> raw}
<% end %>
</p>
</td>
@@ -68,18 +68,18 @@
>
<p style="margin: 0;">
<%= if @report.reported.type == :Group do %>
<h3><%= gettext("Group reported") %></h3>
<h3>{gettext("Group reported")}</h3>
<a
href={
"#{"#{Mobilizon.Web.Endpoint.url()}/@#{Mobilizon.Actors.Actor.preferred_username_and_domain(@report.reported)}"}"
}
target="_blank"
>
<b><%= Mobilizon.Actors.Actor.display_name_and_username(@report.reported) %></b>
<b>{Mobilizon.Actors.Actor.display_name_and_username(@report.reported)}</b>
</a>
<% else %>
<h3><%= gettext("Profile reported") %></h3>
<b><%= Mobilizon.Actors.Actor.display_name_and_username(@report.reported) %></b>
<h3>{gettext("Profile reported")}</h3>
<b>{Mobilizon.Actors.Actor.display_name_and_username(@report.reported)}</b>
<% end %>
</p>
<table
@@ -112,17 +112,17 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<h3><%= gettext("Flagged events") %></h3>
<h3>{gettext("Flagged events")}</h3>
<%= for event <- @report.events do %>
<a
href={"#{"#{Mobilizon.Web.Endpoint.url()}/events/#{event.uuid}"}"}
target="_blank"
>
<%= gettext("%{title} by %{creator}",
{gettext("%{title} by %{creator}",
title: event.title,
creator:
Mobilizon.Actors.Actor.preferred_username_and_domain(@report.reported)
) %>
)}
</a>
<% end %>
</p>
@@ -155,10 +155,10 @@
align="left"
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<h3><%= gettext("Flagged comments") %></h3>
<h3>{gettext("Flagged comments")}</h3>
<%= for comment <- @report.comments do %>
<p style="margin: 0;">
<%= Mobilizon.Service.Formatter.HTML.strip_tags(comment.text) %>
{Mobilizon.Service.Formatter.HTML.strip_tags(comment.text)}
</p>
<% end %>
<table
@@ -191,8 +191,8 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0">
<h3><%= gettext("Reasons for report") %></h3>
<%= @report.content %>
<h3>{gettext("Reasons for report")}</h3>
{@report.content}
</p>
<table
cellspacing="0"
@@ -232,7 +232,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("View report") %>
{gettext("View report")}
</a>
</td>
</tr>

View File

@@ -15,7 +15,7 @@
style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;"
>
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext("New pending user on <b>%{instance}</b>", instance: @instance_name) |> raw %>
{gettext("New pending user on <b>%{instance}</b>", instance: @instance_name) |> raw}
</h1>
</td>
</tr>
@@ -44,11 +44,11 @@
style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"
>
<p style="margin: 0;">
<%= gettext("New pending user from %{user} on %{instance}",
{gettext("New pending user from %{user} on %{instance}",
user: @user.email,
instance: @instance_name
)
|> raw %>
|> raw}
</p>
</td>
</tr>
@@ -59,7 +59,7 @@
target="_blank"
style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;"
>
<%= gettext("Login to view the list of pending users") %>
{gettext("Login to view the list of pending users")}
</a>
</td>
</tr>

View File

@@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title><%= gettext("This page is not correct") %></title>
<title>{gettext("This page is not correct")}</title>
<style>
body.error {
font-family: BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, Segoe UI, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif;
@@ -47,18 +47,18 @@
<!-- <img src="/img/error.png" alt="" width="500" /> -->
</div>
<div class="error__message">
<h1><%= gettext("We're sorry, but something went wrong on our end.") %></h1>
<h1>{gettext("We're sorry, but something went wrong on our end.")}</h1>
<p>
<%= gettext("The Mobilizon server %{instance} seems to be temporarily down.",
{gettext("The Mobilizon server %{instance} seems to be temporarily down.",
instance: "<b>#{@instance}</b>"
)
|> raw %>
|> raw}
<br />
<%= if is_nil(@contact) do %>
<%= gettext("If the issue persists, you may try to contact the server administrator.") %>
{gettext("If the issue persists, you may try to contact the server administrator.")}
<% else %>
<%= gettext(
{gettext(
"If the issue persists, you may contact the server administrator at %{contact}.",
contact:
cond do
@@ -72,14 +72,14 @@
@contact
end
)
|> raw %>
|> raw}
<% end %>
</p>
</div>
</main>
<%= if length(@details) > 0 do %>
<details>
<summary style="font-size: 1.25rem;"><%= gettext("Technical details") %></summary>
<summary style="font-size: 1.25rem;">{gettext("Technical details")}</summary>
<pre>
<%= for detail <- @details do %>
<%= detail %><br />

View File

@@ -117,29 +117,29 @@
</style>
</head>
<body>
<h1><%= gettext("Participants for %{event}", event: @event.title) %></h1>
<h1>{gettext("Participants for %{event}", event: @event.title)}</h1>
<dl>
<dt><%= gettext("Begins on") %></dt>
<dd><%= datetime_to_string(@event.begins_on, @locale, :long) %></dd>
<dt>{gettext("Begins on")}</dt>
<dd>{datetime_to_string(@event.begins_on, @locale, :long)}</dd>
<%= if @event.ends_on do %>
<dt><%= gettext("Ends on") %></dt>
<dd><%= datetime_to_string(@event.ends_on, @locale, :long) %></dd>
<dt>{gettext("Ends on")}</dt>
<dd>{datetime_to_string(@event.ends_on, @locale, :long)}</dd>
<% end %>
<%= if not is_nil(@event.physical_address) and not is_nil(render_address(@event.physical_address)) do %>
<dt><%= gettext("Location") %></dt>
<dd><%= render_address(@event.physical_address) %></dd>
<dt>{gettext("Location")}</dt>
<dd>{render_address(@event.physical_address)}</dd>
<% end %>
<dt><%= gettext("Number of participants") %></dt>
<dt>{gettext("Number of participants")}</dt>
<dd>
<%= @event.participant_stats.participant + @event.participant_stats.moderator +
@event.participant_stats.administrator + @event.participant_stats.creator %>
{@event.participant_stats.participant + @event.participant_stats.moderator +
@event.participant_stats.administrator + @event.participant_stats.creator}
</dd>
</dl>
<table>
<thead>
<tr>
<%= for column <- @columns do %>
<th><%= column %></th>
<th>{column}</th>
<% end %>
</tr>
</thead>
@@ -147,7 +147,7 @@
<%= for line <- @data do %>
<tr>
<%= for cell <- line do %>
<td><%= cell %></td>
<td>{cell}</td>
<% end %>
</tr>
<% end %>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang={Map.get(assigns, :locale, "en")} dir={language_direction(assigns)}>
<head>
<%= raw(Mobilizon.Config.get([:html_hooks, :app_index_html_head_first], "")) %>
{raw(Mobilizon.Config.get([:html_hooks, :app_index_html_head_first], ""))}
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -22,14 +22,14 @@
<link rel="preload" href="/img/shape-2.svg" as="image" />
<link rel="preload" href="/img/shape-3.svg" as="image" />
<% end %>
<%= tags(assigns) || assigns.tags %>
<%= Vite.vite_client() %>
<%= Vite.vite_snippet("src/main.ts") %>
<%= raw(Mobilizon.Config.get([:html_hooks, :app_index_html_head_last], "")) %>
{tags(assigns) || assigns.tags}
{Vite.vite_client()}
{Vite.vite_snippet("src/main.ts")}
{raw(Mobilizon.Config.get([:html_hooks, :app_index_html_head_last], ""))}
</head>
<body>
<%= raw(Mobilizon.Config.get([:html_hooks, :app_index_html_body_first], "")) %>
{raw(Mobilizon.Config.get([:html_hooks, :app_index_html_body_first], ""))}
<noscript>
<strong>
We're sorry but Mobilizon doesn't work properly without JavaScript enabled. Please enable it to continue.
@@ -37,6 +37,6 @@
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
<%= raw(Mobilizon.Config.get([:html_hooks, :app_index_html_body_last], "")) %>
{raw(Mobilizon.Config.get([:html_hooks, :app_index_html_body_last], ""))}
</body>
</html>

104
package-lock.json generated
View File

@@ -5001,14 +5001,14 @@
}
},
"node_modules/@vitest/coverage-v8": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.12.tgz",
"integrity": "sha512-d+w9xAFJJz6jyJRU4BUU7MH409Ush7FWKNkxJU+jASKg6WX33YT0zc+YawMR1JesMWt9QRFQY/uAD3BTn23FaA==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.13.tgz",
"integrity": "sha512-w77N6bmtJ3CFnL/YHiYotwW/JI3oDlR3K38WEIqegRfdMSScaYxwYKB/0jSNpOTZzUjQkG8HHEz4sdWQMWpQ5g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^1.0.2",
"@vitest/utils": "4.0.12",
"@vitest/utils": "4.0.13",
"ast-v8-to-istanbul": "^0.3.8",
"debug": "^4.4.3",
"istanbul-lib-coverage": "^3.2.2",
@@ -5023,8 +5023,8 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@vitest/browser": "4.0.12",
"vitest": "4.0.12"
"@vitest/browser": "4.0.13",
"vitest": "4.0.13"
},
"peerDependenciesMeta": {
"@vitest/browser": {
@@ -5033,16 +5033,16 @@
}
},
"node_modules/@vitest/expect": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.12.tgz",
"integrity": "sha512-is+g0w8V3/ZhRNrRizrJNr8PFQKwYmctWlU4qg8zy5r9aIV5w8IxXLlfbbxJCwSpsVl2PXPTm2/zruqTqz3QSg==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.13.tgz",
"integrity": "sha512-zYtcnNIBm6yS7Gpr7nFTmq8ncowlMdOJkWLqYvhr/zweY6tFbDkDi8BPPOeHxEtK1rSI69H7Fd4+1sqvEGli6w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@standard-schema/spec": "^1.0.0",
"@types/chai": "^5.2.2",
"@vitest/spy": "4.0.12",
"@vitest/utils": "4.0.12",
"@vitest/spy": "4.0.13",
"@vitest/utils": "4.0.13",
"chai": "^6.2.1",
"tinyrainbow": "^3.0.3"
},
@@ -5051,13 +5051,13 @@
}
},
"node_modules/@vitest/mocker": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.12.tgz",
"integrity": "sha512-GsmA/tD5Ht3RUFoz41mZsMU1AXch3lhmgbTnoSPTdH231g7S3ytNN1aU0bZDSyxWs8WA7KDyMPD5L4q6V6vj9w==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.13.tgz",
"integrity": "sha512-eNCwzrI5djoauklwP1fuslHBjrbR8rqIVbvNlAnkq1OTa6XT+lX68mrtPirNM9TnR69XUPt4puBCx2Wexseylg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/spy": "4.0.12",
"@vitest/spy": "4.0.13",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.21"
},
@@ -5088,9 +5088,9 @@
}
},
"node_modules/@vitest/pretty-format": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.12.tgz",
"integrity": "sha512-R7nMAcnienG17MvRN8TPMJiCG8rrZJblV9mhT7oMFdBXvS0x+QD6S1G4DxFusR2E0QIS73f7DqSR1n87rrmE+g==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.13.tgz",
"integrity": "sha512-ooqfze8URWbI2ozOeLDMh8YZxWDpGXoeY3VOgcDnsUxN0jPyPWSUvjPQWqDGCBks+opWlN1E4oP1UYl3C/2EQA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5101,13 +5101,13 @@
}
},
"node_modules/@vitest/runner": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.12.tgz",
"integrity": "sha512-hDlCIJWuwlcLumfukPsNfPDOJokTv79hnOlf11V+n7E14rHNPz0Sp/BO6h8sh9qw4/UjZiKyYpVxK2ZNi+3ceQ==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.13.tgz",
"integrity": "sha512-9IKlAru58wcVaWy7hz6qWPb2QzJTKt+IOVKjAx5vb5rzEFPTL6H4/R9BMvjZ2ppkxKgTrFONEJFtzvnyEpiT+A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/utils": "4.0.12",
"@vitest/utils": "4.0.13",
"pathe": "^2.0.3"
},
"funding": {
@@ -5115,13 +5115,13 @@
}
},
"node_modules/@vitest/snapshot": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.12.tgz",
"integrity": "sha512-2jz9zAuBDUSbnfyixnyOd1S2YDBrZO23rt1bicAb6MA/ya5rHdKFRikPIDpBj/Dwvh6cbImDmudegnDAkHvmRQ==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.13.tgz",
"integrity": "sha512-hb7Usvyika1huG6G6l191qu1urNPsq1iFc2hmdzQY3F5/rTgqQnwwplyf8zoYHkpt7H6rw5UfIw6i/3qf9oSxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/pretty-format": "4.0.12",
"@vitest/pretty-format": "4.0.13",
"magic-string": "^0.30.21",
"pathe": "^2.0.3"
},
@@ -5130,9 +5130,9 @@
}
},
"node_modules/@vitest/spy": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.12.tgz",
"integrity": "sha512-GZjI9PPhiOYNX8Nsyqdw7JQB+u0BptL5fSnXiottAUBHlcMzgADV58A7SLTXXQwcN1yZ6gfd1DH+2bqjuUlCzw==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.13.tgz",
"integrity": "sha512-hSu+m4se0lDV5yVIcNWqjuncrmBgwaXa2utFLIrBkQCQkt+pSwyZTPFQAZiiF/63j8jYa8uAeUZ3RSfcdWaYWw==",
"dev": true,
"license": "MIT",
"funding": {
@@ -5140,13 +5140,13 @@
}
},
"node_modules/@vitest/ui": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.12.tgz",
"integrity": "sha512-RCqeApCnbwd5IFvxk6OeKMXTvzHU/cVqY8HAW0gWk0yAO6wXwQJMKhDfDtk2ss7JCy9u7RNC3kyazwiaDhBA/g==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.13.tgz",
"integrity": "sha512-MFV6GhTflgBj194+vowTB2iLI5niMZhqiW7/NV7U4AfWbX/IAtsq4zA+gzCLyGzpsQUdJlX26hrQ1vuWShq2BQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/utils": "4.0.12",
"@vitest/utils": "4.0.13",
"fflate": "^0.8.2",
"flatted": "^3.3.3",
"pathe": "^2.0.3",
@@ -5158,17 +5158,17 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"vitest": "4.0.12"
"vitest": "4.0.13"
}
},
"node_modules/@vitest/utils": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.12.tgz",
"integrity": "sha512-DVS/TLkLdvGvj1avRy0LSmKfrcI9MNFvNGN6ECjTUHWJdlcgPDOXhjMis5Dh7rBH62nAmSXnkPbE+DZ5YD75Rw==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.13.tgz",
"integrity": "sha512-ydozWyQ4LZuu8rLp47xFUWis5VOKMdHjXCWhs1LuJsTNKww+pTHQNK4e0assIB9K80TxFyskENL6vCu3j34EYA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/pretty-format": "4.0.12",
"@vitest/pretty-format": "4.0.13",
"tinyrainbow": "^3.0.3"
},
"funding": {
@@ -13991,19 +13991,19 @@
}
},
"node_modules/vitest": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.12.tgz",
"integrity": "sha512-pmW4GCKQ8t5Ko1jYjC3SqOr7TUKN7uHOHB/XGsAIb69eYu6d1ionGSsb5H9chmPf+WeXt0VE7jTXsB1IvWoNbw==",
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.13.tgz",
"integrity": "sha512-QSD4I0fN6uZQfftryIXuqvqgBxTvJ3ZNkF6RWECd82YGAYAfhcppBLFXzXJHQAAhVFyYEuFTrq6h0hQqjB7jIQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/expect": "4.0.12",
"@vitest/mocker": "4.0.12",
"@vitest/pretty-format": "4.0.12",
"@vitest/runner": "4.0.12",
"@vitest/snapshot": "4.0.12",
"@vitest/spy": "4.0.12",
"@vitest/utils": "4.0.12",
"@vitest/expect": "4.0.13",
"@vitest/mocker": "4.0.13",
"@vitest/pretty-format": "4.0.13",
"@vitest/runner": "4.0.13",
"@vitest/snapshot": "4.0.13",
"@vitest/spy": "4.0.13",
"@vitest/utils": "4.0.13",
"debug": "^4.4.3",
"es-module-lexer": "^1.7.0",
"expect-type": "^1.2.2",
@@ -14032,10 +14032,10 @@
"@opentelemetry/api": "^1.9.0",
"@types/debug": "^4.1.12",
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
"@vitest/browser-playwright": "4.0.12",
"@vitest/browser-preview": "4.0.12",
"@vitest/browser-webdriverio": "4.0.12",
"@vitest/ui": "4.0.12",
"@vitest/browser-playwright": "4.0.13",
"@vitest/browser-preview": "4.0.13",
"@vitest/browser-webdriverio": "4.0.13",
"@vitest/ui": "4.0.13",
"happy-dom": "*",
"jsdom": "*"
},