diff --git a/app/mailers/administrator_notifications/account_compliance_mailer.rb b/app/mailers/administrator_notifications/account_compliance_mailer.rb index baae4d0ec..61ded60d3 100644 --- a/app/mailers/administrator_notifications/account_compliance_mailer.rb +++ b/app/mailers/administrator_notifications/account_compliance_mailer.rb @@ -39,8 +39,7 @@ class AdministratorNotifications::AccountComplianceMailer < AdministratorNotific end def subject_for(account) - I18n.t('mailer.administrator_notifications.account_compliance.account_deleted.subject', - account_id: account.id, account_name: account.name) + "Account Deletion Notice for #{account.id} - #{account.name}" end def instance_admin_email diff --git a/app/mailers/administrator_notifications/account_notification_mailer.rb b/app/mailers/administrator_notifications/account_notification_mailer.rb index 240684506..5ac753372 100644 --- a/app/mailers/administrator_notifications/account_notification_mailer.rb +++ b/app/mailers/administrator_notifications/account_notification_mailer.rb @@ -1,7 +1,6 @@ class AdministratorNotifications::AccountNotificationMailer < AdministratorNotifications::BaseMailer def account_deletion_user_initiated(account, reason) - brand_name = GlobalConfig.get('BRAND_NAME')['BRAND_NAME'].presence || 'Chatwoot' - subject = I18n.t('mailer.administrator_notifications.account_notifications.account_deletion_user_initiated.subject', brand_name: brand_name) + subject = 'Your Chatwoot account deletion has been scheduled' action_url = settings_url('general') meta = { 'account_name' => account.name, @@ -13,8 +12,7 @@ class AdministratorNotifications::AccountNotificationMailer < AdministratorNotif end def account_deletion_for_inactivity(account, reason) - brand_name = GlobalConfig.get('BRAND_NAME')['BRAND_NAME'].presence || 'Chatwoot' - subject = I18n.t('mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.subject', brand_name: brand_name) + subject = 'Your Chatwoot account is scheduled for deletion due to inactivity' action_url = settings_url('general') meta = { 'account_name' => account.name, @@ -26,7 +24,7 @@ class AdministratorNotifications::AccountNotificationMailer < AdministratorNotif end def contact_import_complete(resource) - subject = I18n.t('mailer.administrator_notifications.account_notifications.contact_import_complete.subject') + subject = 'Contact Import Completed' action_url = if resource.failed_records.attached? Rails.application.routes.url_helpers.rails_blob_url(resource.failed_records) @@ -43,17 +41,17 @@ class AdministratorNotifications::AccountNotificationMailer < AdministratorNotif end def contact_import_failed - subject = I18n.t('mailer.administrator_notifications.account_notifications.contact_import_failed.subject') + subject = 'Contact Import Failed' send_notification(subject) end def contact_export_complete(file_url, email_to) - subject = I18n.t('mailer.administrator_notifications.account_notifications.contact_export_complete.subject') + subject = "Your contact's export file is available to download." send_notification(subject, to: email_to, action_url: file_url) end def automation_rule_disabled(rule) - subject = I18n.t('mailer.administrator_notifications.account_notifications.automation_rule_disabled.subject') + subject = 'Automation rule disabled due to validation errors.' action_url = settings_url('automation/list') meta = { 'rule_name' => rule.name } diff --git a/app/mailers/administrator_notifications/channel_notifications_mailer.rb b/app/mailers/administrator_notifications/channel_notifications_mailer.rb index 776813d74..1957f421b 100644 --- a/app/mailers/administrator_notifications/channel_notifications_mailer.rb +++ b/app/mailers/administrator_notifications/channel_notifications_mailer.rb @@ -1,11 +1,11 @@ class AdministratorNotifications::ChannelNotificationsMailer < AdministratorNotifications::BaseMailer def facebook_disconnect(inbox) - subject = I18n.t('mailer.administrator_notifications.channel_notifications.facebook_disconnect.subject') + subject = 'Your Facebook page connection has expired' send_notification(subject, action_url: inbox_url(inbox)) end def instagram_disconnect(inbox) - subject = I18n.t('mailer.administrator_notifications.channel_notifications.instagram_disconnect.subject') + subject = 'Your Instagram connection has expired' send_notification(subject, action_url: inbox_url(inbox)) end @@ -15,12 +15,12 @@ class AdministratorNotifications::ChannelNotificationsMailer < AdministratorNoti end def whatsapp_disconnect(inbox) - subject = I18n.t('mailer.administrator_notifications.channel_notifications.whatsapp_disconnect.subject') + subject = 'Your Whatsapp connection has expired' send_notification(subject, action_url: inbox_url(inbox)) end def email_disconnect(inbox) - subject = I18n.t('mailer.administrator_notifications.channel_notifications.email_disconnect.subject') + subject = 'Your email inbox has been disconnected. Please update the credentials for SMTP/IMAP' send_notification(subject, action_url: inbox_url(inbox)) end end diff --git a/app/mailers/administrator_notifications/integrations_notification_mailer.rb b/app/mailers/administrator_notifications/integrations_notification_mailer.rb index f2cd126e8..05477eca1 100644 --- a/app/mailers/administrator_notifications/integrations_notification_mailer.rb +++ b/app/mailers/administrator_notifications/integrations_notification_mailer.rb @@ -1,12 +1,12 @@ class AdministratorNotifications::IntegrationsNotificationMailer < AdministratorNotifications::BaseMailer def slack_disconnect - subject = I18n.t('mailer.administrator_notifications.integrations_notifications.slack_disconnect.subject') + subject = 'Your Slack integration has expired' action_url = settings_url('integrations/slack') send_notification(subject, action_url: action_url) end def dialogflow_disconnect - subject = I18n.t('mailer.administrator_notifications.integrations_notifications.dialogflow_disconnect.subject') + subject = 'Your Dialogflow integration was disconnected' send_notification(subject) end end diff --git a/app/mailers/agent_notifications/conversation_notifications_mailer.rb b/app/mailers/agent_notifications/conversation_notifications_mailer.rb index c25d9cc3e..8bf27220e 100644 --- a/app/mailers/agent_notifications/conversation_notifications_mailer.rb +++ b/app/mailers/agent_notifications/conversation_notifications_mailer.rb @@ -5,8 +5,7 @@ class AgentNotifications::ConversationNotificationsMailer < ApplicationMailer @agent = agent @conversation = conversation inbox_name = @conversation.inbox&.sanitized_name - subject = I18n.t('mailer.agent_notifications.conversation_creation.subject', - agent_name: @agent.available_name, conversation_id: @conversation.display_id, inbox_name: inbox_name) + subject = "#{@agent.available_name}, A new conversation [ID - #{@conversation.display_id}] has been created in #{inbox_name}." @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) send_mail_with_liquid(to: @agent.email, subject: subject) and return end @@ -16,8 +15,7 @@ class AgentNotifications::ConversationNotificationsMailer < ApplicationMailer @agent = agent @conversation = conversation - subject = I18n.t('mailer.agent_notifications.conversation_assignment.subject', - agent_name: @agent.available_name, conversation_id: @conversation.display_id) + subject = "#{@agent.available_name}, A new conversation [ID - #{@conversation.display_id}] has been assigned to you." @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) send_mail_with_liquid(to: @agent.email, subject: subject) and return end @@ -28,8 +26,7 @@ class AgentNotifications::ConversationNotificationsMailer < ApplicationMailer @agent = agent @conversation = conversation @message = message - subject = I18n.t('mailer.agent_notifications.conversation_mention.subject', - agent_name: @agent.available_name, conversation_id: @conversation.display_id) + subject = "#{@agent.available_name}, You have been mentioned in conversation [ID - #{@conversation.display_id}]" @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) send_mail_with_liquid(to: @agent.email, subject: subject) and return end @@ -41,8 +38,7 @@ class AgentNotifications::ConversationNotificationsMailer < ApplicationMailer @agent = agent @conversation = conversation - subject = I18n.t('mailer.agent_notifications.assigned_conversation_new_message.subject', - agent_name: @agent.available_name, conversation_id: @conversation.display_id) + subject = "#{@agent.available_name}, New message in your assigned conversation [ID - #{@conversation.display_id}]." @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) send_mail_with_liquid(to: @agent.email, subject: subject) and return end @@ -54,8 +50,7 @@ class AgentNotifications::ConversationNotificationsMailer < ApplicationMailer @agent = agent @conversation = conversation - subject = I18n.t('mailer.agent_notifications.participating_conversation_new_message.subject', - agent_name: @agent.available_name, conversation_id: @conversation.display_id) + subject = "#{@agent.available_name}, New message in your participating conversation [ID - #{@conversation.display_id}]." @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) send_mail_with_liquid(to: @agent.email, subject: subject) and return end diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 3c40cb265..c165302bf 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -18,10 +18,6 @@ class ApplicationMailer < ActionMailer::Base rescue_from(*ExceptionList::SMTP_EXCEPTIONS, with: :handle_smtp_exceptions) - def liquid_filters - [LiquidFilters::I18nFilter] - end - def smtp_config_set_or_development? ENV.fetch('SMTP_ADDRESS', nil).present? || ENV.fetch('RESEND_API_KEY', nil).present? || Rails.env.development? end diff --git a/app/mailers/team_notifications/automation_notification_mailer.rb b/app/mailers/team_notifications/automation_notification_mailer.rb index b459ed660..f1bf1ab40 100644 --- a/app/mailers/team_notifications/automation_notification_mailer.rb +++ b/app/mailers/team_notifications/automation_notification_mailer.rb @@ -13,7 +13,7 @@ class TeamNotifications::AutomationNotificationMailer < ApplicationMailer private def send_an_email_to_team - subject = I18n.t('mailer.team_notifications.automation.subject') + subject = 'This email has been sent via automation rule actions.' @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) @agent_emails = @agents.collect(&:user).pluck(:email) send_mail_with_liquid(to: @agent_emails, subject: subject) and return diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 38693a393..c6877c883 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -10,12 +10,10 @@ class ApplicationRecord < ActiveRecord::Base end # ModelDrop class should exist in app/drops - # Walks the STI hierarchy so subclasses (e.g. SuperAdmin < User) resolve to the matching Drop def to_drop - drop_class = self.class.ancestors.find { |k| k.is_a?(Class) && droppables.include?(k.name) } - return unless drop_class + return unless droppables.include?(self.class.name) - "#{drop_class.name}Drop".constantize.new(self) + "#{self.class.name}Drop".constantize.new(self) end private diff --git a/app/views/devise/mailer/confirmation_instructions.html.erb b/app/views/devise/mailer/confirmation_instructions.html.erb index c58d6be42..4a3b450a3 100644 --- a/app/views/devise/mailer/confirmation_instructions.html.erb +++ b/app/views/devise/mailer/confirmation_instructions.html.erb @@ -1,30 +1,29 @@ -

<%== t('mailer.common.hi', name: @resource.name) %>,

+

Hi <%= @resource.name %>,

<% account_user = @resource&.account_users&.first %> -<% brand_name = global_config['BRAND_NAME'] || 'Chatwoot' %> <% if account_user&.inviter.present? && @resource.unconfirmed_email.blank? %> -

<%== t('mailer.devise.confirmation_instructions.invited', inviter_name: account_user.inviter.name, account_name: account_user.account.name, brand_name: brand_name) %>

+

<%= account_user.inviter.name %>, with <%= account_user.account.name %>, has invited you to try out <%= global_config['BRAND_NAME'] || 'Chatwoot' %>.

<% end %> <% if @resource.confirmed? %> -

<%== t('mailer.devise.confirmation_instructions.login_message', brand_name: brand_name) %>

+

You can login to your <%= global_config['BRAND_NAME'] || 'Chatwoot' %> account through the link below:

<% else %> <% if account_user&.inviter.blank? %>

- <%== t('mailer.devise.confirmation_instructions.welcome', brand_name: brand_name) %> + Welcome to <%= global_config['BRAND_NAME'] || 'Chatwoot' %>! We have a suite of powerful tools ready for you to explore. Before that we quickly need to verify your email address to know it's really you.

<% end %> -

<%== t('mailer.devise.confirmation_instructions.activate') %>

+

Please take a moment and click the link below and activate your account.

<% end %> <% if @resource.unconfirmed_email.present? %> -

<%= link_to t('mailer.devise.confirmation_instructions.confirm_account'), frontend_url('auth/confirmation', confirmation_token: @token) %>

+

<%= link_to 'Confirm my account', frontend_url('auth/confirmation', confirmation_token: @token) %>

<% elsif @resource.confirmed? %> -

<%= link_to t('mailer.devise.confirmation_instructions.login_account'), frontend_url('auth/sign_in') %>

+

<%= link_to 'Login to my account', frontend_url('auth/sign_in') %>

<% elsif account_user&.inviter.present? %> -

<%= link_to t('mailer.devise.confirmation_instructions.confirm_account'), frontend_url('auth/password/edit', reset_password_token: @resource.send(:set_reset_password_token)) %>

+

<%= link_to 'Confirm my account', frontend_url('auth/password/edit', reset_password_token: @resource.send(:set_reset_password_token)) %>

<% else %> -

<%= link_to t('mailer.devise.confirmation_instructions.confirm_account'), frontend_url('auth/confirmation', confirmation_token: @token) %>

-<% end %> +

<%= link_to 'Confirm my account', frontend_url('auth/confirmation', confirmation_token: @token) %>

+<% end %> \ No newline at end of file diff --git a/app/views/devise/mailer/password_change.html.erb b/app/views/devise/mailer/password_change.html.erb index c00d198b0..a3f00032e 100644 --- a/app/views/devise/mailer/password_change.html.erb +++ b/app/views/devise/mailer/password_change.html.erb @@ -1,3 +1,3 @@ -

<%== t('mailer.devise.password_change.greeting', name: @resource.name) %>

+

Hello <%= @resource.name %>!

-

<%== t('mailer.devise.password_change.body') %>

+

We're contacting you to notify you that your password has been changed.

diff --git a/app/views/devise/mailer/reset_password_instructions.html.erb b/app/views/devise/mailer/reset_password_instructions.html.erb index 35a187364..e46695cc2 100644 --- a/app/views/devise/mailer/reset_password_instructions.html.erb +++ b/app/views/devise/mailer/reset_password_instructions.html.erb @@ -1,10 +1,10 @@ -

<%== t('mailer.devise.reset_password_instructions.greeting', name: @resource.name) %>

+

Hello <%= @resource.name %>!

-

<%== t('mailer.devise.reset_password_instructions.body') %>

+

Someone has requested a link to change your password. You can do this through the link below.

-

<%= link_to t('mailer.devise.reset_password_instructions.action'), frontend_url('auth/password/edit', reset_password_token: @token) %>

+

<%= link_to 'Change my password', frontend_url('auth/password/edit', reset_password_token: @token) %>

-

<%== t('mailer.devise.reset_password_instructions.copy_paste') %> <%= frontend_url('auth/password/edit', reset_password_token: @token) %>

+

Copy and paste the URL into your browser if the link above doesn't work: <%= frontend_url('auth/password/edit', reset_password_token: @token) %>

-

<%== t('mailer.devise.reset_password_instructions.ignore') %>

-

<%== t('mailer.devise.reset_password_instructions.no_change') %>

+

If you didn't request this, please ignore this email.

+

Your password won't change until you access the link above and create a new one.

diff --git a/app/views/devise/mailer/unlock_instructions.html.erb b/app/views/devise/mailer/unlock_instructions.html.erb index 8c21349f6..c1096b443 100644 --- a/app/views/devise/mailer/unlock_instructions.html.erb +++ b/app/views/devise/mailer/unlock_instructions.html.erb @@ -1,7 +1,7 @@ -

<%== t('mailer.devise.unlock_instructions.greeting', name: @resource.name) %>

+

Hello <%= @resource.name %>!

-

<%== t('mailer.devise.unlock_instructions.body') %>

+

Your account has been locked due to an excessive number of unsuccessful sign in attempts.

-

<%== t('mailer.devise.unlock_instructions.action_prompt') %>

+

Click the link below to unlock your account:

-

<%= link_to t('mailer.devise.unlock_instructions.unlock_account'), unlock_url(@resource, unlock_token: @token) %>

+

<%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %>

diff --git a/app/views/layouts/mailer/base.liquid b/app/views/layouts/mailer/base.liquid index 93e1b305f..3daa275bb 100644 --- a/app/views/layouts/mailer/base.liquid +++ b/app/views/layouts/mailer/base.liquid @@ -78,7 +78,7 @@ {% if global_config['BRAND_NAME'] != '' %} - {{ 'mailer.common.powered_by' | t }} + Powered by {{ global_config['BRAND_NAME'] }} diff --git a/app/views/mailers/administrator_notifications/account_compliance_mailer/account_deleted.liquid b/app/views/mailers/administrator_notifications/account_compliance_mailer/account_deleted.liquid index 39962ffdd..2e49a7830 100644 --- a/app/views/mailers/administrator_notifications/account_compliance_mailer/account_deleted.liquid +++ b/app/views/mailers/administrator_notifications/account_compliance_mailer/account_deleted.liquid @@ -1,30 +1,30 @@ -

{{ 'mailer.common.hello' | t }}

+

Hello,

-

{{ 'mailer.administrator_notifications.account_compliance.account_deleted.body' | t: 'brand_name', global_config['BRAND_NAME'] }}

+

This is a notification to inform you that an account has been permanently deleted from your Chatwoot instance.

- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.installation' | t: 'brand_name', global_config['BRAND_NAME'] }} {{ meta.instance_url }}
- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.account_id' | t }} {{ meta.account_id }}
- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.account_name' | t }} {{ meta.account_name }}
- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.deletion_due_at' | t }} {{ meta.marked_for_deletion_at }}
- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.deleted_at' | t }} {{ meta.deleted_at }}
- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.deletion_reason' | t }} {{ meta.deletion_reason }} + Chatwoot Installation: {{ meta.instance_url }}
+ Account ID: {{ meta.account_id }}
+ Account Name: {{ meta.account_name }}
+ Deletion due at: {{ meta.marked_for_deletion_at }}
+ Deleted At: {{ meta.deleted_at }}
+ Deletion Reason: {{ meta.deletion_reason }}

{% if meta.deleted_user_count > 0 %}

- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.deleted_users' | t: 'count', meta.deleted_user_count }}
+ Deleted Users ({{ meta.deleted_user_count }}):
{% for user in meta.soft_deleted_users %} - {{ 'mailer.administrator_notifications.account_compliance.account_deleted.user_id' | t }} {{ user.user_id }}, Email: {{ user.user_email }}{% unless forloop.last %}
{% endunless %} + User ID: {{ user.user_id }}, Email: {{ user.user_email }}{% unless forloop.last %}
{% endunless %} {% endfor %}

{% else %}

- {{ 'mailer.administrator_notifications.account_compliance.account_deleted.deleted_users_none' | t }} + Deleted Users: None

{% endif %} -

{{ 'mailer.administrator_notifications.account_compliance.account_deleted.compliance_notice' | t }}

+

This email serves as a record for compliance purposes.

-

{{ 'mailer.administrator_notifications.account_compliance.account_deleted.thank_you' | t }}
-{{ 'mailer.administrator_notifications.account_compliance.account_deleted.system_name' | t: 'brand_name', global_config['BRAND_NAME'] }}

+

Thank you,
+Chatwoot System

\ No newline at end of file diff --git a/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_for_inactivity.liquid b/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_for_inactivity.liquid index a8883219f..273eca12b 100644 --- a/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_for_inactivity.liquid +++ b/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_for_inactivity.liquid @@ -1,19 +1,21 @@ -

{{ 'mailer.common.hello_there' | t }}

+

Hello there,

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.body' | t: 'brand_name', global_config['BRAND_NAME'], 'account_name', meta.account_name, 'deletion_date', meta.deletion_date }}

+

We've noticed that your Chatwoot account {{ meta.account_name }} has been inactive for some time. Because of this, it's scheduled for deletion on {{ meta.deletion_date }}.

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.how_to_keep' | t }}

+

How do I keep my account?

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.how_to_keep_body' | t: 'brand_name', global_config['BRAND_NAME'], 'deletion_date', meta.deletion_date, 'url', action_url }}

+

Log in to your Chatwoot account before {{ meta.deletion_date }}. From your account settings, you can cancel the deletion and continue using your account.

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.what_if_no_cancel' | t }}

+

What happens if I don't cancel?

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.what_if_no_cancel_body' | t: 'deletion_date', meta.deletion_date }}

+

Unless you cancel the account deletion before {{ meta.deletion_date }}, your account and all associated data — including conversations, contacts, reports, and settings — will be permanently deleted.

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.why_doing_this' | t }}

+

Why are we doing this?

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.why_doing_this_body' | t }}

+

To keep things secure and efficient, we regularly remove inactive accounts so our systems remain optimized for active teams.

+ +

If you have any questions, feel free to reach us at hello@chatwoot.com.

+ +

— The Chatwoot Team

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_for_inactivity.contact_us' | t: 'email', 'hello@chatwoot.com' }}

-

{{ 'mailer.common.the_chatwoot_team' | t: 'brand_name', global_config['BRAND_NAME'] }}

diff --git a/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_user_initiated.liquid b/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_user_initiated.liquid index e74258536..2039a93df 100644 --- a/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_user_initiated.liquid +++ b/app/views/mailers/administrator_notifications/account_notification_mailer/account_deletion_user_initiated.liquid @@ -1,14 +1,16 @@ -

{{ 'mailer.common.hello_there' | t }}

+

Hello there,

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_user_initiated.body' | t: 'brand_name', global_config['BRAND_NAME'], 'account_name', meta.account_name, 'deletion_date', meta.deletion_date }}

+

An account administrator has requested deletion of the Chatwoot account {{ meta.account_name }}. The account is scheduled for deletion on {{ meta.deletion_date }}.

-

{{ 'mailer.administrator_notifications.account_notifications.account_deletion_user_initiated.what_happens_next' | t }}

+

What happens next?

+
  • The account will remain accessible until the scheduled deletion date.
  • +
  • After that, all data including conversations, contacts, integrations, and settings will be permanently removed.
  • + + +

    If you change your mind before the deletion date, you can cancel this request by visiting your account settings.

    + +

    — The Chatwoot Team

    -

    {{ 'mailer.administrator_notifications.account_notifications.account_deletion_user_initiated.cancel_request' | t: 'url', action_url }}

    -

    {{ 'mailer.common.the_chatwoot_team' | t: 'brand_name', global_config['BRAND_NAME'] }}

    diff --git a/app/views/mailers/administrator_notifications/account_notification_mailer/automation_rule_disabled.liquid b/app/views/mailers/administrator_notifications/account_notification_mailer/automation_rule_disabled.liquid index dd39f5f33..56aefd6b7 100644 --- a/app/views/mailers/administrator_notifications/account_notification_mailer/automation_rule_disabled.liquid +++ b/app/views/mailers/administrator_notifications/account_notification_mailer/automation_rule_disabled.liquid @@ -1,8 +1,8 @@ -

    {{ 'mailer.common.hello_there' | t }}

    +

    Hello there,

    -

    {{ 'mailer.administrator_notifications.account_notifications.automation_rule_disabled.body' | t: 'rule_name', meta['rule_name'] }}

    -

    {{ 'mailer.administrator_notifications.account_notifications.automation_rule_disabled.explanation' | t }}

    +

    The automation rule {{meta['rule_name']}} has been disabled becuase it has invalid conditions.

    +

    This typically happens when you delete any custom attributes which are still being used in automation rules.

    -{{ 'mailer.administrator_notifications.account_notifications.automation_rule_disabled.action' | t: 'url', action_url }} +Click here to update the conditions.

    diff --git a/app/views/mailers/administrator_notifications/account_notification_mailer/contact_export_complete.liquid b/app/views/mailers/administrator_notifications/account_notification_mailer/contact_export_complete.liquid index f33b595e0..dea003e46 100644 --- a/app/views/mailers/administrator_notifications/account_notification_mailer/contact_export_complete.liquid +++ b/app/views/mailers/administrator_notifications/account_notification_mailer/contact_export_complete.liquid @@ -1,7 +1,8 @@ -

    {{ 'mailer.common.hi_plain' | t }}

    +

    Hi

    -

    {{ 'mailer.administrator_notifications.account_notifications.contact_export_complete.body' | t }}

    + +

    Your contact export file is ready to download.

    -{{ 'mailer.administrator_notifications.account_notifications.contact_export_complete.action' | t: 'url', action_url }} +Click here to download the export file.

    diff --git a/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_complete.liquid b/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_complete.liquid index 79ab1bbcc..776077214 100644 --- a/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_complete.liquid +++ b/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_complete.liquid @@ -1,17 +1,17 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.account_notifications.contact_import_complete.body' | t }}

    +

    Your contact import has been completed. Please check the contacts tab to view the imported contacts.

    -

    {{ 'mailer.administrator_notifications.account_notifications.contact_import_complete.imported_records' | t: 'count', meta['imported_contacts'] }}

    +

    Number of records imported: {{meta['imported_contacts']}}

    -

    {{ 'mailer.administrator_notifications.account_notifications.contact_import_complete.failed_records' | t: 'count', meta['failed_contacts'] }}

    +

    Number of records failed: {{meta['failed_contacts']}}

    {% if meta['failed_contacts'] == 0 %}

    - {{ 'mailer.administrator_notifications.account_notifications.contact_import_complete.click_to_view_imported' | t: 'url', action_url }} + Click here to view the imported contacts.

    {% else %}

    - {{ 'mailer.administrator_notifications.account_notifications.contact_import_complete.click_to_view_failed' | t: 'url', action_url }} + Click here to view failed records.

    {% endif %} diff --git a/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_failed.liquid b/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_failed.liquid index 274f6077f..835cff258 100644 --- a/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_failed.liquid +++ b/app/views/mailers/administrator_notifications/account_notification_mailer/contact_import_failed.liquid @@ -1,3 +1,3 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.account_notifications.contact_import_failed.body' | t }}

    +

    Your contact import has failed. It appears that the CSV file you uploaded may not be valid. We kindly request that you review the file and ensure it complies with the required format.

    diff --git a/app/views/mailers/administrator_notifications/channel_notifications_mailer/email_disconnect.liquid b/app/views/mailers/administrator_notifications/channel_notifications_mailer/email_disconnect.liquid index 102514696..279c34f2b 100644 --- a/app/views/mailers/administrator_notifications/channel_notifications_mailer/email_disconnect.liquid +++ b/app/views/mailers/administrator_notifications/channel_notifications_mailer/email_disconnect.liquid @@ -1,8 +1,8 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.channel_notifications.email_disconnect.body' | t }}

    -

    {{ 'mailer.administrator_notifications.channel_notifications.email_disconnect.action' | t }}

    +

    Your email inbox has been disconnected due to configuration errors.

    +

    Please update it to continue receiving messages.

    -{{ 'mailer.administrator_notifications.channel_notifications.email_disconnect.click_to_reconnect' | t: 'url', action_url }} +Click here to re-connect.

    diff --git a/app/views/mailers/administrator_notifications/channel_notifications_mailer/facebook_disconnect.liquid b/app/views/mailers/administrator_notifications/channel_notifications_mailer/facebook_disconnect.liquid index 3bf4f33d6..528c71543 100644 --- a/app/views/mailers/administrator_notifications/channel_notifications_mailer/facebook_disconnect.liquid +++ b/app/views/mailers/administrator_notifications/channel_notifications_mailer/facebook_disconnect.liquid @@ -1,8 +1,8 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.channel_notifications.facebook_disconnect.body' | t }}

    -

    {{ 'mailer.administrator_notifications.channel_notifications.facebook_disconnect.action' | t }}

    +

    Your Facebook Inbox Access has expired.

    +

    Please reconnect Facebook Page to continue receiving messages.

    -{{ 'mailer.administrator_notifications.channel_notifications.facebook_disconnect.click_to_reconnect' | t: 'url', action_url }} +Click here to re-connect.

    diff --git a/app/views/mailers/administrator_notifications/channel_notifications_mailer/instagram_disconnect.liquid b/app/views/mailers/administrator_notifications/channel_notifications_mailer/instagram_disconnect.liquid index f3e8daa48..d1d4e6345 100644 --- a/app/views/mailers/administrator_notifications/channel_notifications_mailer/instagram_disconnect.liquid +++ b/app/views/mailers/administrator_notifications/channel_notifications_mailer/instagram_disconnect.liquid @@ -1,8 +1,8 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.channel_notifications.instagram_disconnect.body' | t }}

    -

    {{ 'mailer.administrator_notifications.channel_notifications.instagram_disconnect.action' | t }}

    +

    Your Instagram Inbox Access has expired.

    +

    Please reconnect Instagram to continue receiving messages.

    -{{ 'mailer.administrator_notifications.channel_notifications.instagram_disconnect.click_to_reconnect' | t: 'url', action_url }} -

    +Click here to re-connect. +

    \ No newline at end of file diff --git a/app/views/mailers/administrator_notifications/channel_notifications_mailer/whatsapp_disconnect.liquid b/app/views/mailers/administrator_notifications/channel_notifications_mailer/whatsapp_disconnect.liquid index 9de08f118..ec13bbe01 100644 --- a/app/views/mailers/administrator_notifications/channel_notifications_mailer/whatsapp_disconnect.liquid +++ b/app/views/mailers/administrator_notifications/channel_notifications_mailer/whatsapp_disconnect.liquid @@ -1,8 +1,8 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.channel_notifications.whatsapp_disconnect.body' | t }}

    -

    {{ 'mailer.administrator_notifications.channel_notifications.whatsapp_disconnect.action' | t }}

    +

    Your Whatsapp Access has expired.

    +

    Please reconnect Whatsapp to continue receiving messages.

    -{{ 'mailer.administrator_notifications.channel_notifications.whatsapp_disconnect.click_to_reconnect' | t: 'url', action_url }} +Click here to re-connect.

    diff --git a/app/views/mailers/administrator_notifications/integrations_notification_mailer/dialogflow_disconnect.liquid b/app/views/mailers/administrator_notifications/integrations_notification_mailer/dialogflow_disconnect.liquid index 9d05afea1..b60db35c1 100644 --- a/app/views/mailers/administrator_notifications/integrations_notification_mailer/dialogflow_disconnect.liquid +++ b/app/views/mailers/administrator_notifications/integrations_notification_mailer/dialogflow_disconnect.liquid @@ -1,3 +1,3 @@ -

    {{ 'mailer.common.hello_there' | t }}

    +

    Hello there,

    -

    {{ 'mailer.administrator_notifications.integrations_notifications.dialogflow_disconnect.body' | t }}

    +

    Your Dialogflow integration was disconnected because of permission issues. To resolve this, please delete the integration from the admin dashboard and reconnect it using new credentials.

    diff --git a/app/views/mailers/administrator_notifications/integrations_notification_mailer/slack_disconnect.liquid b/app/views/mailers/administrator_notifications/integrations_notification_mailer/slack_disconnect.liquid index a34f06980..e1bbb4e48 100644 --- a/app/views/mailers/administrator_notifications/integrations_notification_mailer/slack_disconnect.liquid +++ b/app/views/mailers/administrator_notifications/integrations_notification_mailer/slack_disconnect.liquid @@ -1,7 +1,7 @@ -

    {{ 'mailer.common.hello' | t }}

    +

    Hello,

    -

    {{ 'mailer.administrator_notifications.integrations_notifications.slack_disconnect.body' | t }}

    +

    Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again.

    -{{ 'mailer.administrator_notifications.integrations_notifications.slack_disconnect.click_to_reconnect' | t: 'url', action_url }} +Click here to re-connect.

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/assigned_conversation_new_message.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/assigned_conversation_new_message.liquid index 943f1edc1..841aace35 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/assigned_conversation_new_message.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/assigned_conversation_new_message.liquid @@ -1,7 +1,7 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    -

    {{ 'mailer.agent_notifications.assigned_conversation_new_message.body' | t }}

    +

    You have received a new message in your assigned conversation.

    -{{ 'mailer.common.click_here_to_get_cracking' | t: 'url', action_url }} +Click here to get cracking.

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_assignment.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_assignment.liquid index 62390487b..d59672dc8 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_assignment.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_assignment.liquid @@ -1,12 +1,12 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    -

    {{ 'mailer.agent_notifications.conversation_assignment.body' | t }}

    +

    Time to save the world. A new conversation has been assigned to you

    {% for chat_message in conversation.recent_messages %}

    {% if chat_message.sender == user.available_name %} - {{ 'mailer.common.you' | t }} + You {% else %} {{chat_message.sender}} {% endif %} @@ -20,12 +20,12 @@ {% if chat_message.attachments %} {% for attachment in chat_message.attachments %} - {{ 'mailer.common.attachment_click_to_view' | t: 'url', attachment }} + Attachment [Click here to view] {% endfor %} {% endif %}

    {% endfor %}

    -{{ 'mailer.common.click_here_to_get_cracking' | t: 'url', action_url }} +Click here to get cracking.

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_creation.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_creation.liquid index 0189d92c9..e2d952777 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_creation.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_creation.liquid @@ -1,14 +1,15 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }}

    +

    Hi {{user.available_name}}

    - {{ 'mailer.agent_notifications.conversation_creation.body' | t: 'url', action_url, 'conversation_id', conversation.display_id, 'inbox_name', inbox.name, 'contact_name', conversation.contact_name }} + A new conversation (#{{conversation.display_id}}) has been created in {{ inbox.name }}. + {{ conversation.contact_name }} wrote:

    {% for chat_message in conversation.recent_messages %}

    {% if chat_message.sender == user.available_name %} - {{ 'mailer.common.you' | t }} + You {% else %} {{chat_message.sender}} {% endif %} @@ -22,7 +23,7 @@ {% if chat_message.attachments %} {% for attachment in chat_message.attachments %} - {{ 'mailer.common.attachment_click_to_view' | t: 'url', attachment }} + Attachment [Click here to view] {% endfor %} {% endif %}

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_mention.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_mention.liquid index b2e8b0642..193c0c015 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_mention.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/conversation_mention.liquid @@ -1,16 +1,16 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    -

    {{ 'mailer.agent_notifications.conversation_mention.body' | t: 'sender_name', message.sender_display_name }}

    +

    You've been mentioned in a conversation. {{message.sender_display_name}} wrote:

    {{message.text_content}}
    -

    {{ 'mailer.agent_notifications.conversation_mention.previous_messages' | t }}

    +

    Previous messages:

    {% for chat_message in conversation.recent_messages %}

    {% if chat_message.sender == user.available_name %} - {{ 'mailer.common.you' | t }} + You {% else %} {{chat_message.sender}} {% endif %} @@ -24,11 +24,11 @@ {% if chat_message.attachments %} {% for attachment in chat_message.attachments %} - {{ 'mailer.common.attachment_click_to_view' | t: 'url', attachment }} + Attachment [Click here to view] {% endfor %} {% endif %}

    {% endfor %}

    - {{ 'mailer.agent_notifications.conversation_mention.view_message' | t }} + View Message

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/participating_conversation_new_message.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/participating_conversation_new_message.liquid index e61f69a5a..977b15b6a 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/participating_conversation_new_message.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/participating_conversation_new_message.liquid @@ -1,5 +1,5 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    -

    {{ 'mailer.agent_notifications.participating_conversation_new_message.body' | t }}

    +

    You have received a new message in a conversation you are participating.

    -

    {{ 'mailer.common.click_here_to_get_cracking' | t: 'url', action_url }}

    +

    Click here to get cracking.

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_first_response.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_first_response.liquid index 2ef500c4c..d7988ad5f 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_first_response.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_first_response.liquid @@ -1,10 +1,10 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    - Conversation #{{conversation.display_id}} in {{ inbox.name }} - {{ 'mailer.agent_notifications.sla_missed_first_response.body' | t }} {{ sla_policy.name }}. + Conversation #{{conversation.display_id}} in {{ inbox.name }} + has missed the SLA for first response under policy {{ sla_policy.name }}.

    -{{ 'mailer.agent_notifications.sla_missed_first_response.action' | t }} +Please address immediately.

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_next_response.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_next_response.liquid index 892832761..d7bf8d445 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_next_response.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_next_response.liquid @@ -1,10 +1,10 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    - Conversation #{{conversation.display_id}} in {{ inbox.name }} - {{ 'mailer.agent_notifications.sla_missed_next_response.body' | t }} {{ sla_policy.name }}. + Conversation #{{conversation.display_id}} in {{ inbox.name }} + has missed the SLA for next response under policy {{ sla_policy.name }}..

    -{{ 'mailer.agent_notifications.sla_missed_next_response.action' | t }} +Please address immediately.

    diff --git a/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_resolution.liquid b/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_resolution.liquid index 4be8e2301..efd24913e 100644 --- a/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_resolution.liquid +++ b/app/views/mailers/agent_notifications/conversation_notifications_mailer/sla_missed_resolution.liquid @@ -1,10 +1,10 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }},

    +

    Hi {{user.available_name}},

    - Conversation #{{conversation.display_id}} in {{ inbox.name }} - {{ 'mailer.agent_notifications.sla_missed_resolution.body' | t }} {{ sla_policy.name }}. + Conversation #{{conversation.display_id}} in {{ inbox.name }} + has missed the SLA for resolution time under policy {{ sla_policy.name }}.

    -{{ 'mailer.agent_notifications.sla_missed_resolution.action' | t }} +Please address immediately.

    diff --git a/app/views/mailers/portal_instructions_mailer/send_cname_instructions.liquid b/app/views/mailers/portal_instructions_mailer/send_cname_instructions.liquid index f98ae63b7..b14ca1098 100644 --- a/app/views/mailers/portal_instructions_mailer/send_cname_instructions.liquid +++ b/app/views/mailers/portal_instructions_mailer/send_cname_instructions.liquid @@ -1,9 +1,8 @@ -

    {{ 'mailer.portal.cname_instructions.greeting' | t }}

    - {% assign domain = cname_record | split: ' ' | first %} -

    {{ 'mailer.portal.cname_instructions.intro' | t: 'domain', domain }}

    -

    {{ 'mailer.portal.cname_instructions.add_cname' | t }}

    +

    Hello there,

    +

    To complete the setup of your help center, you'll need to update the DNS settings for your custom domain: {{ cname_record | split: ' ' | first }}.

    +

    Please add the following CNAME record to your DNS provider's configuration:

    @@ -15,17 +14,17 @@ -

    {{ 'mailer.portal.cname_instructions.steps_title' | t }}

    +

    Step-by-step Instructions:

      -
    1. {{ 'mailer.portal.cname_instructions.step_1' | t }}
    2. -
    3. {{ 'mailer.portal.cname_instructions.step_2' | t }}
    4. -
    5. {{ 'mailer.portal.cname_instructions.step_3' | t }}
    6. -
    7. {{ 'mailer.portal.cname_instructions.step_4' | t }}
    8. +
    9. Log in to your DNS provider’s dashboard
    10. +
    11. Go to the DNS management section
    12. +
    13. Create a new CNAME record using the information above
    14. +
    15. Save the changes and allow up to 24 hours for the DNS to propagate
    -

    {{ 'mailer.portal.cname_instructions.ssl_notice' | t }}

    +

    Once the DNS record is live, your custom domain will automatically be secured with an SSL certificate.

    -

    {{ 'mailer.portal.cname_instructions.support_message' | t }}

    +

    If you have any questions or need help, feel free to reach out to our support team—we’re here to assist you.

    diff --git a/app/views/mailers/team_notifications/automation_notification_mailer/conversation_creation.liquid b/app/views/mailers/team_notifications/automation_notification_mailer/conversation_creation.liquid index e345a3ec0..036e96603 100644 --- a/app/views/mailers/team_notifications/automation_notification_mailer/conversation_creation.liquid +++ b/app/views/mailers/team_notifications/automation_notification_mailer/conversation_creation.liquid @@ -1,7 +1,7 @@ -

    {{ 'mailer.team_notifications.automation.automation_system' | t }}

    +

    This is the mail from Automation System

    {{ custom_message }}

    -{{ 'mailer.common.click_here_to_get_cracking' | t: 'url', action_url }} +Click here to get cracking.

    diff --git a/app/views/mailers/team_notifications/automation_notification_mailer/conversation_updated.liquid b/app/views/mailers/team_notifications/automation_notification_mailer/conversation_updated.liquid index 1a2fc3631..8edefcc07 100644 --- a/app/views/mailers/team_notifications/automation_notification_mailer/conversation_updated.liquid +++ b/app/views/mailers/team_notifications/automation_notification_mailer/conversation_updated.liquid @@ -1,7 +1,8 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }}

    +

    Hi {{user.available_name}}

    +

    {{ custom_message }}

    -{{ 'mailer.common.click_here_to_get_cracking' | t: 'url', action_url }} +Click here to get cracking.

    diff --git a/app/views/mailers/team_notifications/automation_notification_mailer/message_created.liquid b/app/views/mailers/team_notifications/automation_notification_mailer/message_created.liquid index 1a2fc3631..8edefcc07 100644 --- a/app/views/mailers/team_notifications/automation_notification_mailer/message_created.liquid +++ b/app/views/mailers/team_notifications/automation_notification_mailer/message_created.liquid @@ -1,7 +1,8 @@ -

    {{ 'mailer.common.hi' | t: 'name', user.available_name }}

    +

    Hi {{user.available_name}}

    +

    {{ custom_message }}

    -{{ 'mailer.common.click_here_to_get_cracking' | t: 'url', action_url }} +Click here to get cracking.

    diff --git a/config/locales/en.yml b/config/locales/en.yml index 37bcb929b..5c7e0d922 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -557,171 +557,3 @@ en: fourth: "fourth" fifth: "fifth" last: "last" - mailer: - common: - hi: "Hi %{name}" - hi_plain: "Hi" - hello: "Hello," - hello_there: "Hello there," - click_here: "Click here" - powered_by: "Powered by" - you: "You" - attachment_click_to_view: "Attachment [Click here to view]" - click_here_to_get_cracking: "Click here to get cracking." - the_chatwoot_team: "The %{brand_name} Team" - agent_notifications: - conversation_creation: - subject: "%{agent_name}, A new conversation [ID - %{conversation_id}] has been created in %{inbox_name}." - body: "A new conversation (#%{conversation_id}) has been created in %{inbox_name}. %{contact_name} wrote:" - conversation_assignment: - subject: "%{agent_name}, A new conversation [ID - %{conversation_id}] has been assigned to you." - body: "Time to save the world. A new conversation has been assigned to you" - conversation_mention: - subject: "%{agent_name}, You have been mentioned in conversation [ID - %{conversation_id}]" - body: "You've been mentioned in a conversation. %{sender_name} wrote:" - previous_messages: "Previous messages:" - view_message: "View Message" - assigned_conversation_new_message: - subject: "%{agent_name}, New message in your assigned conversation [ID - %{conversation_id}]." - body: "You have received a new message in your assigned conversation." - participating_conversation_new_message: - subject: "%{agent_name}, New message in your participating conversation [ID - %{conversation_id}]." - body: "You have received a new message in a conversation you are participating." - sla_missed_first_response: - subject: "Conversation [ID - %{conversation_id}] missed SLA for first response" - body: "has missed the SLA for first response under policy" - action: "Please address immediately." - sla_missed_next_response: - subject: "Conversation [ID - %{conversation_id}] missed SLA for next response" - body: "has missed the SLA for next response under policy" - action: "Please address immediately." - sla_missed_resolution: - subject: "Conversation [ID - %{conversation_id}] missed SLA for resolution time" - body: "has missed the SLA for resolution time under policy" - action: "Please address immediately." - administrator_notifications: - channel_notifications: - whatsapp_disconnect: - subject: "Your Whatsapp connection has expired" - body: "Your Whatsapp Access has expired." - action: "Please reconnect Whatsapp to continue receiving messages." - click_to_reconnect: "Click here to re-connect." - facebook_disconnect: - subject: "Your Facebook page connection has expired" - body: "Your Facebook Inbox Access has expired." - action: "Please reconnect Facebook Page to continue receiving messages." - click_to_reconnect: "Click here to re-connect." - instagram_disconnect: - subject: "Your Instagram connection has expired" - body: "Your Instagram Inbox Access has expired." - action: "Please reconnect Instagram to continue receiving messages." - click_to_reconnect: "Click here to re-connect." - email_disconnect: - subject: "Your email inbox has been disconnected. Please update the credentials for SMTP/IMAP" - body: "Your email inbox has been disconnected due to configuration errors." - action: "Please update it to continue receiving messages." - click_to_reconnect: "Click here to re-connect." - account_notifications: - automation_rule_disabled: - subject: "Automation rule disabled due to validation errors." - body: "The automation rule %{rule_name} has been disabled because it has invalid conditions." - explanation: "This typically happens when you delete any custom attributes which are still being used in automation rules." - action: "Click here to update the conditions." - contact_import_complete: - subject: "Contact Import Completed" - body: "Your contact import has been completed. Please check the contacts tab to view the imported contacts." - imported_records: "Number of records imported: %{count}" - failed_records: "Number of records failed: %{count}" - click_to_view_imported: "Click here to view the imported contacts." - click_to_view_failed: "Click here to view failed records." - contact_import_failed: - subject: "Contact Import Failed" - body: "Your contact import has failed. It appears that the CSV file you uploaded may not be valid. We kindly request that you review the file and ensure it complies with the required format." - contact_export_complete: - subject: "Your contact's export file is available to download." - body: "Your contact export file is ready to download." - action: "Click here to download the export file." - account_deletion_user_initiated: - subject: "Your %{brand_name} account deletion has been scheduled" - body: "An account administrator has requested deletion of the %{brand_name} account %{account_name}. The account is scheduled for deletion on %{deletion_date}." - what_happens_next: "What happens next?" - remains_accessible: "The account will remain accessible until the scheduled deletion date." - data_permanently_removed: "After that, all data including conversations, contacts, integrations, and settings will be permanently removed." - cancel_request: "If you change your mind before the deletion date, you can cancel this request by visiting your account settings." - account_deletion_for_inactivity: - subject: "Your %{brand_name} account is scheduled for deletion due to inactivity" - body: "We've noticed that your %{brand_name} account %{account_name} has been inactive for some time. Because of this, it's scheduled for deletion on %{deletion_date}." - how_to_keep: "How do I keep my account?" - how_to_keep_body: "Log in to your %{brand_name} account before %{deletion_date}. From your account settings, you can cancel the deletion and continue using your account." - what_if_no_cancel: "What happens if I don't cancel?" - what_if_no_cancel_body: "Unless you cancel the account deletion before %{deletion_date}, your account and all associated data, including conversations, contacts, reports, and settings, will be permanently deleted." - why_doing_this: "Why are we doing this?" - why_doing_this_body: "To keep things secure and efficient, we regularly remove inactive accounts so our systems remain optimized for active teams." - contact_us: "If you have any questions, feel free to reach us at %{email}." - integrations_notifications: - slack_disconnect: - subject: "Your Slack integration has expired" - body: "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again." - click_to_reconnect: "Click here to re-connect." - dialogflow_disconnect: - subject: "Your Dialogflow integration was disconnected" - body: "Your Dialogflow integration was disconnected because of permission issues. To resolve this, please delete the integration from the admin dashboard and reconnect it using new credentials." - account_compliance: - account_deleted: - subject: "Account Deletion Notice for %{account_id} - %{account_name}" - body: "This is a notification to inform you that an account has been permanently deleted from your %{brand_name} instance." - installation: "%{brand_name} Installation:" - account_id: "Account ID:" - account_name: "Account Name:" - deletion_due_at: "Deletion due at:" - deleted_at: "Deleted At:" - deletion_reason: "Deletion Reason:" - deleted_users: "Deleted Users (%{count}):" - deleted_users_none: "Deleted Users: None" - user_id: "User ID:" - compliance_notice: "This email serves as a record for compliance purposes." - thank_you: "Thank you," - system_name: "%{brand_name} System" - team_notifications: - automation: - subject: "This email has been sent via automation rule actions." - automation_system: "This is the mail from Automation System" - portal: - cname_instructions: - greeting: "Hello there," - intro: "To complete the setup of your help center, you'll need to update the DNS settings for your custom domain: %{domain}." - add_cname: "Please add the following CNAME record to your DNS provider's configuration:" - steps_title: "Step-by-step Instructions:" - step_1: "Log in to your DNS provider's dashboard" - step_2: "Go to the DNS management section" - step_3: "Create a new CNAME record using the information above" - step_4: "Save the changes and allow up to 24 hours for the DNS to propagate" - ssl_notice: "Once the DNS record is live, your custom domain will automatically be secured with an SSL certificate." - support_message: "If you have any questions or need help, feel free to reach out to our support team. We're here to assist you." - devise: - confirmation_instructions: - invited: "%{inviter_name}, with %{account_name}, has invited you to try out %{brand_name}." - login_message: "You can login to your %{brand_name} account through the link below:" - welcome: "Welcome to %{brand_name}! We have a suite of powerful tools ready for you to explore. Before that we quickly need to verify your email address to know it's really you." - activate: "Please take a moment and click the link below and activate your account." - confirm_account: "Confirm my account" - login_account: "Login to my account" - invited_sso: "%{inviter_name}, with %{account_name}, has invited you to access %{brand_name} via Single Sign-On (SSO)." - sso_no_password: "Your organization uses SSO for secure authentication. You will not need a password to access your account." - sso_login: "You can now access your account by logging in through your organization's SSO portal." - sso_access: "You can access your account by logging in through your organization's SSO portal." - reset_password_instructions: - greeting: "Hello %{name}!" - body: "Someone has requested a link to change your password. You can do this through the link below." - action: "Change my password" - copy_paste: "Copy and paste the URL into your browser if the link above doesn't work:" - ignore: "If you didn't request this, please ignore this email." - no_change: "Your password won't change until you access the link above and create a new one." - password_change: - greeting: "Hello %{name}!" - body: "We're contacting you to notify you that your password has been changed." - unlock_instructions: - greeting: "Hello %{name}!" - body: "Your account has been locked due to an excessive number of unsuccessful sign in attempts." - action_prompt: "Click the link below to unlock your account:" - unlock_account: "Unlock my account" diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml index 50cff0fa2..fd8a3451e 100644 --- a/config/locales/pt_BR.yml +++ b/config/locales/pt_BR.yml @@ -538,171 +538,3 @@ pt_BR: fourth: "quarto(a)" fifth: "quinto(a)" last: "último(a)" - mailer: - common: - hi: "Olá %{name}" - hi_plain: "Olá" - hello: "Olá," - hello_there: "Olá," - click_here: "Clique aqui" - powered_by: "Desenvolvido por" - you: "Você" - attachment_click_to_view: "Anexo [Clique aqui para visualizar]" - click_here_to_get_cracking: "Clique aqui para começar." - the_chatwoot_team: "Equipe %{brand_name}" - agent_notifications: - conversation_creation: - subject: "%{agent_name}, Uma nova conversa [ID - %{conversation_id}] foi criada em %{inbox_name}." - body: "Uma nova conversa (#%{conversation_id}) foi criada em %{inbox_name}. %{contact_name} escreveu:" - conversation_assignment: - subject: "%{agent_name}, Uma nova conversa [ID - %{conversation_id}] foi atribuída a você." - body: "Hora de salvar o mundo. Uma nova conversa foi atribuída a você" - conversation_mention: - subject: "%{agent_name}, Você foi mencionado na conversa [ID - %{conversation_id}]" - body: "Você foi mencionado em uma conversa. %{sender_name} escreveu:" - previous_messages: "Mensagens anteriores:" - view_message: "Ver Mensagem" - assigned_conversation_new_message: - subject: "%{agent_name}, Nova mensagem na sua conversa atribuída [ID - %{conversation_id}]." - body: "Você recebeu uma nova mensagem na sua conversa atribuída." - participating_conversation_new_message: - subject: "%{agent_name}, Nova mensagem na sua conversa participante [ID - %{conversation_id}]." - body: "Você recebeu uma nova mensagem em uma conversa da qual você participa." - sla_missed_first_response: - subject: "Conversa [ID - %{conversation_id}] perdeu o SLA de primeira resposta" - body: "perdeu o SLA de primeira resposta sob a política" - action: "Por favor, resolva imediatamente." - sla_missed_next_response: - subject: "Conversa [ID - %{conversation_id}] perdeu o SLA de próxima resposta" - body: "perdeu o SLA de próxima resposta sob a política" - action: "Por favor, resolva imediatamente." - sla_missed_resolution: - subject: "Conversa [ID - %{conversation_id}] perdeu o SLA de tempo de resolução" - body: "perdeu o SLA de tempo de resolução sob a política" - action: "Por favor, resolva imediatamente." - administrator_notifications: - channel_notifications: - whatsapp_disconnect: - subject: "Sua conexão com o WhatsApp expirou" - body: "Seu acesso ao WhatsApp expirou." - action: "Por favor, reconecte o WhatsApp para continuar recebendo mensagens." - click_to_reconnect: "Clique aqui para reconectar." - facebook_disconnect: - subject: "Sua conexão com a página do Facebook expirou" - body: "Seu acesso à caixa de entrada do Facebook expirou." - action: "Por favor, reconecte a página do Facebook para continuar recebendo mensagens." - click_to_reconnect: "Clique aqui para reconectar." - instagram_disconnect: - subject: "Sua conexão com o Instagram expirou" - body: "Seu acesso à caixa de entrada do Instagram expirou." - action: "Por favor, reconecte o Instagram para continuar recebendo mensagens." - click_to_reconnect: "Clique aqui para reconectar." - email_disconnect: - subject: "Sua caixa de entrada de e-mail foi desconectada. Por favor, atualize as credenciais SMTP/IMAP" - body: "Sua caixa de entrada de e-mail foi desconectada devido a erros de configuração." - action: "Por favor, atualize-a para continuar recebendo mensagens." - click_to_reconnect: "Clique aqui para reconectar." - account_notifications: - automation_rule_disabled: - subject: "Regra de automação desativada devido a erros de validação." - body: "A regra de automação %{rule_name} foi desativada porque possui condições inválidas." - explanation: "Isso normalmente acontece quando você exclui atributos personalizados que ainda estão sendo usados em regras de automação." - action: "Clique aqui para atualizar as condições." - contact_import_complete: - subject: "Importação de Contatos Concluída" - body: "Sua importação de contatos foi concluída. Verifique a aba de contatos para visualizar os contatos importados." - imported_records: "Número de registros importados: %{count}" - failed_records: "Número de registros com falha: %{count}" - click_to_view_imported: "Clique aqui para visualizar os contatos importados." - click_to_view_failed: "Clique aqui para visualizar os registros com falha." - contact_import_failed: - subject: "Falha na Importação de Contatos" - body: "Sua importação de contatos falhou. Parece que o arquivo CSV enviado pode não ser válido. Solicitamos que você revise o arquivo e garanta que ele esteja no formato correto." - contact_export_complete: - subject: "Seu arquivo de exportação de contatos está disponível para download." - body: "Seu arquivo de exportação de contatos está pronto para download." - action: "Clique aqui para baixar o arquivo de exportação." - account_deletion_user_initiated: - subject: "A exclusão da sua conta %{brand_name} foi agendada" - body: "Um administrador da conta solicitou a exclusão da conta %{brand_name} %{account_name}. A conta está agendada para exclusão em %{deletion_date}." - what_happens_next: "O que acontece a seguir?" - remains_accessible: "A conta permanecerá acessível até a data de exclusão agendada." - data_permanently_removed: "Após essa data, todos os dados, incluindo conversas, contatos, integrações e configurações, serão permanentemente removidos." - cancel_request: "Se você mudar de ideia antes da data de exclusão, pode cancelar esta solicitação acessando as configurações da sua conta." - account_deletion_for_inactivity: - subject: "Sua conta %{brand_name} está agendada para exclusão por inatividade" - body: "Notamos que sua conta %{brand_name} %{account_name} está inativa há algum tempo. Por isso, ela está agendada para exclusão em %{deletion_date}." - how_to_keep: "Como manter minha conta?" - how_to_keep_body: "Faça login na sua conta %{brand_name} antes de %{deletion_date}. Nas configurações da sua conta, você pode cancelar a exclusão e continuar usando sua conta." - what_if_no_cancel: "O que acontece se eu não cancelar?" - what_if_no_cancel_body: "A menos que você cancele a exclusão da conta antes de %{deletion_date}, sua conta e todos os dados associados, incluindo conversas, contatos, relatórios e configurações, serão permanentemente excluídos." - why_doing_this: "Por que estamos fazendo isso?" - why_doing_this_body: "Para manter tudo seguro e eficiente, removemos regularmente contas inativas para que nossos sistemas permaneçam otimizados para equipes ativas." - contact_us: "Se você tiver alguma dúvida, entre em contato conosco em %{email}." - integrations_notifications: - slack_disconnect: - subject: "Sua integração com o Slack expirou" - body: "Sua integração com o Slack expirou. Para continuar recebendo mensagens no Slack, exclua a integração e conecte seu workspace novamente." - click_to_reconnect: "Clique aqui para reconectar." - dialogflow_disconnect: - subject: "Sua integração com o Dialogflow foi desconectada" - body: "Sua integração com o Dialogflow foi desconectada devido a problemas de permissão. Para resolver isso, exclua a integração do painel de administração e reconecte-a usando novas credenciais." - account_compliance: - account_deleted: - subject: "Notificação de Exclusão de Conta para %{account_id} - %{account_name}" - body: "Esta é uma notificação para informar que uma conta foi permanentemente excluída da sua instância %{brand_name}." - installation: "Instalação %{brand_name}:" - account_id: "ID da Conta:" - account_name: "Nome da Conta:" - deletion_due_at: "Exclusão prevista para:" - deleted_at: "Excluída em:" - deletion_reason: "Motivo da Exclusão:" - deleted_users: "Usuários Excluídos (%{count}):" - deleted_users_none: "Usuários Excluídos: Nenhum" - user_id: "ID do Usuário:" - compliance_notice: "Este e-mail serve como registro para fins de conformidade." - thank_you: "Obrigado," - system_name: "Sistema %{brand_name}" - team_notifications: - automation: - subject: "Este e-mail foi enviado via ações de regra de automação." - automation_system: "Este é o e-mail do Sistema de Automação" - portal: - cname_instructions: - greeting: "Olá," - intro: "Para concluir a configuração do seu centro de ajuda, você precisará atualizar as configurações de DNS do seu domínio personalizado: %{domain}." - add_cname: "Adicione o seguinte registro CNAME na configuração do seu provedor de DNS:" - steps_title: "Instruções passo a passo:" - step_1: "Acesse o painel do seu provedor de DNS" - step_2: "Vá para a seção de gerenciamento de DNS" - step_3: "Crie um novo registro CNAME usando as informações acima" - step_4: "Salve as alterações e aguarde até 24 horas para a propagação do DNS" - ssl_notice: "Quando o registro DNS estiver ativo, seu domínio personalizado será automaticamente protegido com um certificado SSL." - support_message: "Se você tiver alguma dúvida ou precisar de ajuda, entre em contato com nossa equipe de suporte. Estamos aqui para ajudá-lo." - devise: - confirmation_instructions: - invited: "%{inviter_name}, de %{account_name}, convidou você para experimentar o %{brand_name}." - login_message: "Você pode acessar sua conta %{brand_name} através do link abaixo:" - welcome: "Bem-vindo ao %{brand_name}! Temos um conjunto de ferramentas poderosas prontas para você explorar. Antes disso, precisamos verificar rapidamente seu endereço de e-mail para confirmar que é realmente você." - activate: "Reserve um momento e clique no link abaixo para ativar sua conta." - confirm_account: "Confirmar minha conta" - login_account: "Acessar minha conta" - invited_sso: "%{inviter_name}, de %{account_name}, convidou você para acessar o %{brand_name} via Single Sign-On (SSO)." - sso_no_password: "Sua organização utiliza SSO para autenticação segura. Você não precisará de uma senha para acessar sua conta." - sso_login: "Agora você pode acessar sua conta fazendo login pelo portal SSO da sua organização." - sso_access: "Você pode acessar sua conta fazendo login pelo portal SSO da sua organização." - reset_password_instructions: - greeting: "Olá %{name}!" - body: "Alguém solicitou um link para alterar sua senha. Você pode fazer isso através do link abaixo." - action: "Alterar minha senha" - copy_paste: "Copie e cole a URL no seu navegador se o link acima não funcionar:" - ignore: "Se você não solicitou isso, ignore este e-mail." - no_change: "Sua senha não será alterada até que você acesse o link acima e crie uma nova." - password_change: - greeting: "Olá %{name}!" - body: "Estamos entrando em contato para notificá-lo de que sua senha foi alterada." - unlock_instructions: - greeting: "Olá %{name}!" - body: "Sua conta foi bloqueada devido a um número excessivo de tentativas de login malsucedidas." - action_prompt: "Clique no link abaixo para desbloquear sua conta:" - unlock_account: "Desbloquear minha conta" diff --git a/enterprise/app/mailers/enterprise/agent_notifications/conversation_notifications_mailer.rb b/enterprise/app/mailers/enterprise/agent_notifications/conversation_notifications_mailer.rb index 5a876dfad..8b153377d 100644 --- a/enterprise/app/mailers/enterprise/agent_notifications/conversation_notifications_mailer.rb +++ b/enterprise/app/mailers/enterprise/agent_notifications/conversation_notifications_mailer.rb @@ -5,7 +5,7 @@ module Enterprise::AgentNotifications::ConversationNotificationsMailer @agent = agent @conversation = conversation @sla_policy = sla_policy - subject = I18n.t('mailer.agent_notifications.sla_missed_first_response.subject', conversation_id: @conversation.display_id) + subject = "Conversation [ID - #{@conversation.display_id}] missed SLA for first response" @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) send_mail_with_liquid(to: @agent.email, subject: subject) and return end @@ -17,8 +17,7 @@ module Enterprise::AgentNotifications::ConversationNotificationsMailer @conversation = conversation @sla_policy = sla_policy @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) - subject = I18n.t('mailer.agent_notifications.sla_missed_next_response.subject', conversation_id: @conversation.display_id) - send_mail_with_liquid(to: @agent.email, subject: subject) and return + send_mail_with_liquid(to: @agent.email, subject: "Conversation [ID - #{@conversation.display_id}] missed SLA for next response") and return end def sla_missed_resolution(conversation, agent, sla_policy) @@ -28,8 +27,7 @@ module Enterprise::AgentNotifications::ConversationNotificationsMailer @conversation = conversation @sla_policy = sla_policy @action_url = app_account_conversation_url(account_id: @conversation.account_id, id: @conversation.display_id) - subject = I18n.t('mailer.agent_notifications.sla_missed_resolution.subject', conversation_id: @conversation.display_id) - send_mail_with_liquid(to: @agent.email, subject: subject) and return + send_mail_with_liquid(to: @agent.email, subject: "Conversation [ID - #{@conversation.display_id}] missed SLA for resolution time") and return end def liquid_droppables diff --git a/enterprise/app/views/devise/mailer/confirmation_instructions.html.erb b/enterprise/app/views/devise/mailer/confirmation_instructions.html.erb index 90d860e31..91837f980 100644 --- a/enterprise/app/views/devise/mailer/confirmation_instructions.html.erb +++ b/enterprise/app/views/devise/mailer/confirmation_instructions.html.erb @@ -1,46 +1,45 @@ -

    <%== t('mailer.common.hi', name: @resource.name) %>,

    +

    Hi <%= @resource.name %>,

    <% account_user = @resource&.account_users&.first %> <% is_saml_account = account_user&.account&.saml_enabled? %> -<% brand_name = global_config['BRAND_NAME'] || 'Chatwoot' %> <% if account_user&.inviter.present? && @resource.unconfirmed_email.blank? %> <% if is_saml_account %> -

    <%== t('mailer.devise.confirmation_instructions.invited_sso', inviter_name: account_user.inviter.name, account_name: account_user.account.name, brand_name: brand_name) %>

    -

    <%== t('mailer.devise.confirmation_instructions.sso_no_password') %>

    +

    <%= account_user.inviter.name %>, with <%= account_user.account.name %>, has invited you to access <%= global_config['BRAND_NAME'] || 'Chatwoot' %> via Single Sign-On (SSO).

    +

    Your organization uses SSO for secure authentication. You will not need a password to access your account.

    <% else %> -

    <%== t('mailer.devise.confirmation_instructions.invited', inviter_name: account_user.inviter.name, account_name: account_user.account.name, brand_name: brand_name) %>

    +

    <%= account_user.inviter.name %>, with <%= account_user.account.name %>, has invited you to try out <%= global_config['BRAND_NAME'] || 'Chatwoot' %>.

    <% end %> <% end %> <% if @resource.confirmed? %> -

    <%== t('mailer.devise.confirmation_instructions.login_message', brand_name: brand_name) %>

    +

    You can login to your <%= global_config['BRAND_NAME'] || 'Chatwoot' %> account through the link below:

    <% else %> <% if account_user&.inviter.blank? %>

    - <%== t('mailer.devise.confirmation_instructions.welcome', brand_name: brand_name) %> + Welcome to <%= global_config['BRAND_NAME'] || 'Chatwoot' %>! We have a suite of powerful tools ready for you to explore. Before that we quickly need to verify your email address to know it's really you.

    <% end %> <% unless is_saml_account %> -

    <%== t('mailer.devise.confirmation_instructions.activate') %>

    +

    Please take a moment and click the link below and activate your account.

    <% end %> <% end %> <% if @resource.unconfirmed_email.present? %> -

    <%= link_to t('mailer.devise.confirmation_instructions.confirm_account'), frontend_url('auth/confirmation', confirmation_token: @token) %>

    +

    <%= link_to 'Confirm my account', frontend_url('auth/confirmation', confirmation_token: @token) %>

    <% elsif @resource.confirmed? %> <% if is_saml_account %> -

    <%== t('mailer.devise.confirmation_instructions.sso_login') %>

    +

    You can now access your account by logging in through your organization's SSO portal.

    <% else %> -

    <%= link_to t('mailer.devise.confirmation_instructions.login_account'), frontend_url('auth/sign_in') %>

    +

    <%= link_to 'Login to my account', frontend_url('auth/sign_in') %>

    <% end %> <% elsif account_user&.inviter.present? %> <% if is_saml_account %> -

    <%== t('mailer.devise.confirmation_instructions.sso_access') %>

    +

    You can access your account by logging in through your organization's SSO portal.

    <% else %> -

    <%= link_to t('mailer.devise.confirmation_instructions.confirm_account'), frontend_url('auth/password/edit', reset_password_token: @resource.send(:set_reset_password_token)) %>

    +

    <%= link_to 'Confirm my account', frontend_url('auth/password/edit', reset_password_token: @resource.send(:set_reset_password_token)) %>

    <% end %> <% else %> -

    <%= link_to t('mailer.devise.confirmation_instructions.confirm_account'), frontend_url('auth/confirmation', confirmation_token: @token) %>

    +

    <%= link_to 'Confirm my account', frontend_url('auth/confirmation', confirmation_token: @token) %>

    <% end %> diff --git a/lib/liquid_filters/i18n_filter.rb b/lib/liquid_filters/i18n_filter.rb deleted file mode 100644 index 4613d3188..000000000 --- a/lib/liquid_filters/i18n_filter.rb +++ /dev/null @@ -1,9 +0,0 @@ -module LiquidFilters::I18nFilter - def t(key, *args) - result = I18n.t(key, default: key) - args.each_slice(2) do |placeholder, value| - result = result.gsub("%{#{placeholder}}", value.to_s) if placeholder - end - result - end -end