add signer user forms translations

pull/217/head
Pete Matsyburka 2 years ago
parent 4db77c18e3
commit 9356247ef0

@ -1,6 +1,8 @@
# frozen_string_literal: true
class ApplicationController < ActionController::Base
BROWSER_LOCALE_REGEXP = /\A\w{2}(?:-\w{2})?/
include ActiveStorage::SetCurrent
include Pagy::Backend
@ -32,6 +34,21 @@ class ApplicationController < ActionController::Base
private
def with_browser_locale(&)
locale = request.env['HTTP_ACCEPT_LANGUAGE'].to_s[BROWSER_LOCALE_REGEXP].to_s
locale =
if locale.starts_with?('en-') && locale != 'en-US'
'en-GB'
else
locale.split('-').first.presence || 'en-GB'
end
locale = 'en-GB' unless I18n.locale_available?(locale)
I18n.with_locale(locale, &)
end
def sign_in_for_demo
sign_in(User.active.order('random()').take) unless signed_in?
end

@ -6,6 +6,7 @@ class StartFormController < ApplicationController
skip_before_action :authenticate_user!
skip_authorization_check
around_action :with_browser_locale, only: %i[show completed]
before_action :load_template
def show

@ -3,6 +3,7 @@
class SubmitFormController < ApplicationController
layout 'form'
around_action :with_browser_locale, only: %i[show completed]
skip_before_action :authenticate_user!
skip_authorization_check

@ -453,7 +453,7 @@ const he = {
use_international_format: 'השתמש בפורמט בינלאומי: +1xxx',
six_digits_code: 'קוד משתמש שש ספרות',
change_phone_number: 'שינוי מספר טלפון',
sending: 'שולח...',
sending: 'שולח',
resend_code: 'שלח מחדש קוד',
verification_code_has_been_resent: 'קוד האימות נשלח מחדש בSMS',
please_fill_all_required_fields: 'אנא מלא את כל השדות הדרושים',

@ -10,23 +10,23 @@
<%= svg_icon('writing_sign', class: 'w-10 h-10') %>
</div>
<div>
<p class="text-lg font-bold mb-1"><%= @submitter.submission.template.name %></p>
<p class="text-sm">Signed on <%= l(@submitter.completed_at.to_date, format: :long, locale: @submitter.submission.template.account.locale) %></p>
<p dir="auto" class="text-lg font-bold mb-1"><%= @submitter.submission.template.name %></p>
<p dir="auto" class="text-sm"><%= t('signed_on_time', time: l(@submitter.completed_at.to_date, format: :long)) %></p>
</div>
</div>
</div>
</div>
<div class="text-center text-2xl font-semibold">
Form has been submitted already
<div dir="auto" class="text-center text-2xl font-semibold">
<%= t('form_has_been_submitted_already') %>
</div>
<% if Accounts.can_send_emails?(@submitter.submission.template.account) %>
<div>
<%= button_to button_title(title: 'Send copy to Email', disabled_with: 'Sending', icon: svg_icon('mail_forward', class: 'w-6 h-6')), send_submission_email_index_path, params: { submitter_slug: @submitter.slug }, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'base-button w-full' %>
<%= button_to button_title(title: t('send_copy_to_email'), disabled_with: t('sending'), icon: svg_icon('mail_forward', class: 'w-6 h-6')), send_submission_email_index_path, params: { submitter_slug: @submitter.slug }, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'base-button w-full' %>
</div>
<% end %>
<% if @template.submitters.to_a.size == 1 %>
<div>
<%= button_to button_title(title: 'Resubmit', disabled_with: 'Resubmit', icon: svg_icon('reload', class: 'w-6 h-6')), start_form_path(@template.slug), params: { submitter: { email: params[:email] }, resubmit: @submitter.slug }, method: :put, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'white-button w-full' %>
<%= button_to button_title(title: t('resubmit'), disabled_with: t('resubmit'), icon: svg_icon('reload', class: 'w-6 h-6')), start_form_path(@template.slug), params: { submitter: { email: params[:email] }, resubmit: @submitter.slug }, method: :put, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'white-button w-full' %>
</div>
<% end %>
</div>

@ -4,7 +4,7 @@
<div class="text-center w-full space-y-6">
<%= render 'banner' %>
<% unless @template.archived_at? %>
<p class="text-xl font-semibold text-center">You have been invited to submit a form</p>
<p class="text-xl font-semibold text-center"><%= t('you_have_been_invited_to_submit_a_form') %></p>
<% end %>
</div>
<div class="flex items-center bg-base-200 rounded-xl p-4 mb-4">
@ -15,9 +15,9 @@
<div>
<p class="text-lg font-bold mb-1"><%= @template.name %></p>
<% if @template.archived_at? %>
<p class="text-sm">Form has been deleted by <span class="font-semibold"><%= @template.account.name %></span>.</p>
<p dir="auto" class="text-sm"><%= t('form_has_been_deleted_by_html', name: @template.account.name) %></p>
<% else %>
<p class="text-sm">Invited by <span class="font-semibold"><%= @template.account.name %></span></p>
<p dir="auto" class="text-sm"><%= t('invited_by_html', name: @template.account.name) %></p>
<% end %>
</div>
</div>
@ -25,13 +25,13 @@
</div>
<% unless @template.archived_at? %>
<%= form_for @submitter, url: start_form_path(@template.slug), data: { turbo_frame: :_top }, method: :put, html: { class: 'space-y-4', onsubmit: 'event.submitter.disabled = true' } do |f| %>
<div class="form-control !mt-0">
<%= f.label :email, class: 'label' %>
<%= f.email_field :email, value: current_user&.email || params[:email] || @submitter.email, required: true, class: 'base-input', placeholder: 'Provide your email to start' %>
<div dir="auto" class="form-control !mt-0">
<%= f.label :email, t('email'), class: 'label' %>
<%= f.email_field :email, value: current_user&.email || params[:email] || @submitter.email, required: true, class: 'base-input', placeholder: t('provide_your_email_to_start') %>
<%= @error_message %>
</div>
<div class="form-control">
<%= f.button button_title(title: 'Start', disabled_with: 'Starting'), class: 'base-button' %>
<div dir="auto" class="form-control">
<%= f.button button_title(title: t('start'), disabled_with: t('starting')), class: 'base-button' %>
</div>
<% end %>
<% end %>

@ -9,9 +9,9 @@
<div class="mr-3">
<%= svg_icon('writing_sign', class: 'w-10 h-10') %>
</div>
<div>
<div dir="auto">
<p class="text-lg font-bold mb-1"><%= @submitter.submission.template.name %></p>
<p class="text-sm">Form has been deleted by <span class="font-semibold"><%= @submitter.submission.template.account.name %></span>.</p>
<p class="text-sm"><%= t('form_has_been_deleted_by', name: @submitter.submission.template.account.name %></p>
</div>
</div>
</div>

@ -10,17 +10,17 @@
<%= svg_icon('writing_sign', class: 'w-10 h-10') %>
</div>
<div>
<p class="text-lg font-bold mb-1"><%= @submitter.submission.template.name %></p>
<p class="text-sm">Signed on <%= l(@submitter.completed_at.to_date, format: :long, locale: @submitter.submission.template.account.locale) %></p>
<p dir="auto" class="text-lg font-bold mb-1"><%= @submitter.submission.template.name %></p>
<p dir="auto" class="text-sm"><%= t('signed_on_time', time: l(@submitter.completed_at.to_date, format: :long)) %></p>
</div>
</div>
</div>
</div>
<div>
<% if Accounts.can_send_emails?(@submitter.submission.template.account) && @submitter.email.present? %>
<%= button_to button_title(title: 'Send copy to Email', disabled_with: 'Sending', icon: svg_icon('mail_forward', class: 'w-6 h-6')), send_submission_email_index_path, params: { submitter_slug: @submitter.slug }, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'white-button w-full' %>
<%= button_to button_title(title: t('send_copy_to_email'), disabled_with: t('sending'), icon: svg_icon('mail_forward', class: 'w-6 h-6')), send_submission_email_index_path, params: { submitter_slug: @submitter.slug }, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'white-button w-full' %>
<% if @submitter.submission.template.submitters.size != 1 %>
<div class="divider">OR</div>
<div class="divider uppercase"><%= t('or') %></div>
<% else %>
<div class="py-2"></div>
<% end %>
@ -28,18 +28,18 @@
<download-button data-src="<%= submitter_download_index_path(@submitter.slug) %>" class="base-button w-full">
<span class="flex items-center justify-center space-x-2" data-target="download-button.defaultButton">
<%= svg_icon('download', class: 'w-6 h-6') %>
<span>Download documents</span>
<span><%= t('download_documents') %></span>
</span>
<span class="flex items-center justify-center space-x-2 hidden" data-target="download-button.loadingButton">
<%= svg_icon('loader', class: 'w-6 h-6 animate-spin') %>
<span>Downloading</span>
<span><%= t('downloading') %></span>
</span>
</download-button>
</div>
<% if @submitter.submission.template.submitters.size == 1 %>
<div class="divider">OR</div>
<div class="divider uppercase"><%= t('or') %></div>
<div>
<%= button_to button_title(title: 'Resubmit', disabled_with: 'Resubmit', icon: svg_icon('reload', class: 'w-6 h-6')), start_form_path(@submitter.submission.template.slug), params: { submitter: { email: @submitter.email, phone: @submitter.phone, name: @submitter.name }, resubmit: @submitter.slug }, method: :put, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'white-button w-full' %>
<%= button_to button_title(title: t('resubmit'), disabled_with: t('resubmit'), icon: svg_icon('reload', class: 'w-6 h-6')), start_form_path(@submitter.submission.template.slug), params: { submitter: { email: @submitter.email, phone: @submitter.phone, name: @submitter.name }, resubmit: @submitter.slug }, method: :put, form: { onsubmit: 'event.submitter.disabled = true' }, class: 'white-button w-full' %>
</div>
<% end %>
</div>

@ -22,7 +22,7 @@ module DocuSeal
config.active_storage.routes_prefix = ''
config.i18n.available_locales = %i[en en-US en-GB es-ES fr-FR pt-PT de-DE pt]
config.i18n.available_locales = %i[en en-US en-GB es-ES fr-FR pt-PT de-DE es it de fr pl uk cs pt he]
config.i18n.fallbacks = [:en]
config.exceptions_app = ->(env) { ErrorsController.action(:show).call(env) }

@ -82,7 +82,7 @@ Rails.application.configure do
ActiveRecord::Encryption.configure(**config.active_record.encryption)
# Raises error for missing translations.
# config.i18n.raise_on_missing_translations = true
config.i18n.raise_on_missing_translations = true
# Annotate rendered view with file names.
# config.action_view.annotate_rendered_view_with_filenames = true

@ -1,29 +1,222 @@
en-US:
en: &en
email: Email
digitally_signed_by: Digitally signed by
role: Role
provide_your_email_to_start: Provide your email to start
start: Start
starting: Starting
form_has_been_deleted_by_html: 'Form has been deleted by <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Invited by <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: You have been invited to submit a form
signed_on_time: 'Signed on %{time}'
form_has_been_submitted_already: Form has been submitted already
send_copy_to_email: Send copy to Email
sending: Sending
resubmit: Resubmit
form_has_been_deleted_by_html: 'Form has been deleted by <span class="font-semibold">%{name}</span>.'
or: or
download_documents: Download documents
downloading: Downloading
es: &es
digitally_signed_by: Firmado digitalmente por
role: Rol
email: Correo electrónico
digitally_signed_by: Firmado digitalmente por
role: Rol
provide_your_email_to_start: Proporciona tu correo electrónico para comenzar
start: Comenzar
starting: Comenzando
form_has_been_deleted_by_html: 'El formulario ha sido eliminado por <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Invitado por <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Has sido invitado/a a enviar un formulario
signed_on_time: 'Firmado en %{time}'
form_has_been_submitted_already: El formulario ya ha sido enviado
send_copy_to_email: Enviar copia a Correo electrónico
sending: Enviando
resubmit: Reenviar
or: o
download_documents: Descargar documentos
downloading: Descargando
it:
digitally_signed_by: Signé numériquement par
role: Rôle
email: Email
digitally_signed_by: Firmato digitalmente da
role: Ruolo
provide_your_email_to_start: Fornisci la tua email per iniziare
start: Inizia
starting: Iniziando
form_has_been_deleted_by_html: 'Il modulo è stato eliminato da <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Invitato da <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Sei stato invitato a inviare un modulo
signed_on_time: 'Firmato alle %{time}'
form_has_been_submitted_already: Il modulo è già stato inviato
send_copy_to_email: Invia copia via email
sending: Inviando
resubmit: Reinvia
or: o
download_documents: Scarica documenti
downloading: Scaricamento
fr: &fr
email: Email
digitally_signed_by: Signé numériquement par
role: Rôle
provide_your_email_to_start: Entrez votre email pour commencer
start: Démarrer
starting: Démarrage
form_has_been_deleted_by_html: 'Le formulaire a été supprimé par <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Invité par <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Vous avez été invité à soumettre un formulaire
signed_on_time: 'Signé à %{time}'
form_has_been_submitted_already: Le formulaire a déjà été soumis
send_copy_to_email: Envoyer une copie par email
sending: Envoi
resubmit: Soumettre à nouveau
or: ou
download_documents: Télécharger des documents
downloading: Téléchargement
pt: &pt
digitally_signed_by: Assinado digitalmente por
role: Função
email: Email
digitally_signed_by: Assinado digitalmente por
role: Função
provide_your_email_to_start: Forneça o seu email para começar
start: Iniciar
starting: Iniciando
form_has_been_deleted_by_html: 'O formulário foi eliminado por <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Convidado por <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Foi convidado a submeter um formulário
signed_on_time: 'Assinado em %{time}'
form_has_been_submitted_already: O formulário já foi submetido
send_copy_to_email: Enviar cópia para Email
sending: Enviando
resubmit: Reenviar
or: ou
download_documents: Baixar documentos
downloading: Baixando
de: &de
digitally_signed_by: Digital signiert von
role: Rolle
email: E-Mail
digitally_signed_by: Digital unterzeichnet von
role: Rolle
provide_your_email_to_start: Gib deine E-Mail-Adresse ein, um zu starten
start: Starten
starting: Starten
form_has_been_deleted_by_html: 'Das Formular wurde von <span class="font-semibold">%{name}</span> gelöscht.'
invited_by_html: 'Eingeladen von <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Du wurdest eingeladen, ein Formular einzureichen
signed_on_time: 'Unterzeichnet um %{time}'
form_has_been_submitted_already: Formular wurde bereits eingereicht
send_copy_to_email: Kopie per E-Mail senden
sending: Senden
resubmit: Erneut einreichen
or: oder
download_documents: Dokumente herunterladen
downloading: Herunterladen
pl:
email: Email
digitally_signed_by: Podpis cyfrowy przez
role: Rola
provide_your_email_to_start: Podaj swój adres email, aby rozpocząć
start: Rozpocznij
starting: Rozpoczynanie
form_has_been_deleted_by_html: 'Formularz został usunięty przez <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Zaproszony przez <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Zostałeś zaproszony do przesłania formularza
signed_on_time: 'Podpisano %{time}'
form_has_been_submitted_already: Formularz został już przesłany
send_copy_to_email: Wyślij kopię na Email
sending: Wysyłanie
resubmit: Prześlij ponownie
or: lub
download_documents: Pobierz dokumenty
downloading: Pobieranie
uk:
email: Email
digitally_signed_by: Цифровий підпис від
role: Роль
provide_your_email_to_start: Введіть свій email, щоб почати
start: Почати
starting: Початок
form_has_been_deleted_by_html: 'Форму було видалено користувачем <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Запрошений користувачем <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Вас запросили подати форму
signed_on_time: 'Підписаний %{time}'
form_has_been_submitted_already: Форма вже була подана
send_copy_to_email: Надіслати копію на Email
sending: Надсилання
resubmit: Подати знову
or: або
download_documents: Завантажити документи
downloading: Завантаження
cs:
email: Email
digitally_signed_by: Digitálně podepsáno uživatelem
role: Role
provide_your_email_to_start: Zadejte svůj email pro zahájení
start: Zahájit
starting: Zahajování
form_has_been_deleted_by_html: 'Formulář byl smazán uživatelem <span class="font-semibold">%{name}</span>.'
invited_by_html: 'Pozván uživatelem <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: Byli jste pozváni k odeslání formuláře
signed_on_time: 'Podepsáno %{time}'
form_has_been_submitted_already: Formulář již byl odeslán
send_copy_to_email: Odeslat kopii na Email
sending: Odesílání
resubmit: Odeslat znovu
or: nebo
download_documents: Stáhnout dokumenty
downloading: Stahování
he:
email: דוא"ל
digitally_signed_by: חתום דיגיטלית על ידי
role: תפקיד
provide_your_email_to_start: ספק את כתובת הדוא"ל שלך כדי להתחיל
start: התחל
starting: מתחיל
form_has_been_deleted_by_html: 'הטופס נמחק על ידי <span class="font-semibold">%{name}</span>.'
invited_by_html: 'הוזמן על ידי <span class="font-semibold">%{name}</span>'
you_have_been_invited_to_submit_a_form: הוזמנת להגיש טופס
signed_on_time: 'חתום ב-%{time}'
form_has_been_submitted_already: הטופס כבר נשלח
send_copy_to_email: שלח עותק לדוא"ל
sending: שולח
resubmit: שלח מחדש
or: או
download_documents: הורד מסמכים
downloading: מוריד
en-US:
<<: *en
date:
formats:
default: "%m/%d/%Y"
en-GB:
digitally_signed_by: Digitally signed by
role: Role
<<: *en
date:
formats:
default: "%d/%m/%Y"
es-ES:
digitally_signed_by: Firmado digitalmente por
role: Rol
<<: *es
fr-FR:
digitally_signed_by: Signé numériquement par
role: Rôle
<<: *fr
pt-PT:
digitally_signed_by: Assinado digitalmente por
role: Função
<<: *pt
de-DE:
digitally_signed_by: Digital signiert von
role: Rolle
<<: *de

Loading…
Cancel
Save