Merge pull request #8175 from colinux/home-i18n

i18n: extraction home + meta titles
This commit is contained in:
Colin Darie 2022-12-05 10:45:40 +01:00 committed by GitHub
commit 2cdbcbf0b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 159 additions and 105 deletions

View file

@ -1,16 +0,0 @@
#footer
%p{ class: "copyright col-md-push-#{12-main_container_size} col-md-#{main_container_size} col-lg-push-#{12-main_container_size} col-lg-#{main_container_size} text-muted small" }
= link_to t("links.provider.name"), t("links.provider.url")
= Time.zone.now.year
\-
= link_to t("links.footer.doc_nouveautes.label"), t("links.footer.doc_nouveautes.url"), title: t("links.footer.doc_nouveautes.title"), target: '_blank'
\-
= link_to t("links.footer.stats.label"), stats_path
\-
= link_to "#{t("links.footer.cgu.label")} / #{t("links.footer.mentions_legales.label")}", t("links.footer.cgu.url"), title: t("links.footer.cgu.title"), target: '_blank'
\-
= link_to t("links.footer.doc.label"), t("links.footer.doc.url"), title: t("links.footer.doc.title"), target: '_blank'
\-
= link_to t("links.footer.faq_admin.label"), t("links.footer.faq_admin.url"), title: t("links.footer.faq_admin.title"), target: '_blank'
\-
= link_to t("links.footer.webinaire.label"), t("links.footer.webinaire.url"), title: t("links.footer.webinaire.title"), target: '_blank'

View file

@ -1,5 +1,6 @@
- content_for :footer do
= render partial: "root/footer"
- content_for :title, t(".promise")
.landing
.landing-panel.hero-panel
@ -7,11 +8,7 @@
.hero-wrapper
.hero-text
%h1.hero-tagline
%em.hero-tagline-em Effectuer
%br<>
%em.hero-tagline-em une démarche administrative
%br<>
%em.hero-tagline-em en ligne
= simple_format(t(".promise"), { class: "hero-tagline-em" }, wrapper_tag: "em")
.hero-illustration
%img{ :src => image_url("landing/hero/dematerialiser.svg"), alt: '', width: 499, height: 280, loading: 'lazy' }
@ -23,47 +20,38 @@
%img.role-image{ :src => image_url("landing/roles/usagers.svg"), alt: '', width: 176, height: 180, loading: 'lazy' }
.role-panel-70
%h2 Vous souhaitez effectuer une demande auprès dune administration ?
%p.fr-h5 Réalisez vos demandes en toute simplicité et retrouvez vos dossiers en ligne
%h2= t(".have_a_procedure")
%p.fr-h5= t(".fill_procedure")
= link_to "Comment trouver ma démarche ?", COMMENT_TROUVER_MA_DEMARCHE_URL, class: "fr-btn fr-btn--lg fr-mr-1w fr-mb-2w", title: new_tab_suffix("Comment trouver ma démarche ?"), **external_link_attributes
= link_to "Se connecter", new_user_session_path, class: "fr-btn fr-btn--secondary fr-btn--lg"
= link_to t(".how_to_find_procedure"), COMMENT_TROUVER_MA_DEMARCHE_URL, class: "fr-btn fr-btn--lg fr-mr-1w fr-mb-2w", title: new_tab_suffix(t(".how_to_find_procedure")), **external_link_attributes
= link_to t("views.users.sessions.new.connection"), new_user_session_path, class: "fr-btn fr-btn--secondary fr-btn--lg"
- cache "numbers-panel", :expires_in => 3.hours do
.landing-panel
.container
%h2.center.fr-mb-4w #{APPLICATION_NAME} en chiffres
%h2.center.fr-mb-4w= t(".our_numbers", name: APPLICATION_NAME)
%ul.numbers
%li.number
.number-value
= number_with_delimiter(@stat&.administrations_partenaires, :locale => :fr)
.number-label<
administrations
%br<>
partenaires
= number_with_delimiter(@stat&.administrations_partenaires)
= simple_format(t(".numbers.administrations"), { class: "number-label" }, wrapper_tag: "div")
%li.number
.number-value
= number_with_delimiter(@stat&.dossiers_not_brouillon, :locale => :fr)
.number-label<
dossiers
%br<>
déposés
= number_with_delimiter(@stat&.dossiers_not_brouillon)
= simple_format(t(".numbers.files"), { class: "number-label" }, wrapper_tag: "div")
%li.number
.number-value
= "#{number_with_delimiter(50, :locale => :fr)} %"
.number-label<
de réduction
%br<>
des délais de traitement
= "#{number_with_delimiter(50)} %"
= simple_format(t(".numbers.processing_time"), { class: "number-label" }, wrapper_tag: "div")
.landing-panel.cta-panel
.container
.cta-panel-wrapper
%div
%h2.cta-panel-title Une question, un problème ?
%p.cta-panel-explanation La réponse est dans laide en ligne
%h2.cta-panel-title= t(".question")
%p.cta-panel-explanation= t(".answer_in_faq")
%div
= link_to "Accéder à laide en ligne", FAQ_URL, class: "fr-btn fr-btn--lg", title: new_tab_suffix("Accéder à laide en ligne"), **external_link_attributes
= link_to t(".online_help"), FAQ_URL, class: "fr-btn fr-btn--lg", title: new_tab_suffix(t(".online_help")), **external_link_attributes
-# We temporarily disable the link to the contact page on the homepage
-# %p.cta-panel-explanation Notre équipe est disponible pour vous renseigner et vous aider
-# %div
@ -77,7 +65,7 @@
.container
.cta-panel-wrapper
%div
%h2.fr-h4 Administration : vous voulez dématerialiser ?
%p.cta-panel-explanation.grey Proposez à vos usagers de remplir leurs dossiers en ligne
%h2.fr-h4= t(".administration_dematerialize")
%p.cta-panel-explanation.grey= t(".administration_fill_online")
%div
= link_to "Découvrez notre outil", administration_path, class: "fr-btn fr-btn--lg"
= link_to t(".administration_discover"), administration_path, class: "fr-btn fr-btn--lg"

View file

@ -1,4 +1,2 @@
.fr-footer__bottom-copy
%p
Sauf mention contraire, tous les contenus de ce site sont sous
%a{ href: "https://github.com/etalab/licence-ouverte/blob/master/LO.md", target:"_blank", rel: "noopener", title: new_tab_suffix("licence etalab-2.0") } licence etalab-2.0
%p= t("links.footer.copy_html", link: link_to(t("links.footer.license"), "https://github.com/etalab/licence-ouverte/blob/master/LO.md", title: new_tab_suffix("licence etalab-2.0"), **external_link_attributes))

View file

@ -4,4 +4,4 @@
%li.fr-footer__bottom-item
= link_to t("links.footer.mentions_legales.label"), t("links.footer.mentions_legales.url"), title: t("links.footer.mentions_legales.title"), class: "fr-footer__bottom-link", rel: "noopener noreferrer"
%li.fr-footer__bottom-item
= link_to t("links.footer.cookies.title"), suivi_path, title: t("links.footer.aide.title"), class: "fr-footer__bottom-link"
= link_to t("links.footer.cookies.label"), suivi_path, title: t("links.footer.cookies.title"), class: "fr-footer__bottom-link"

View file

@ -56,7 +56,7 @@
.fr-container
.fr-footer__body
.fr-footer__brand.fr-enlarge-link
= link_to t("links.provider.url"), title: t("links.provider.title"), 'aria-label': t("links.provider.name") do
= link_to t("links.provider.url"), title: t("links.provider.title") do
%p.fr-logo
premier
%br
@ -66,9 +66,10 @@
.fr-footer__content
%p.fr-footer__content-desc
= I18n.t('users.procedure_footer.managed_by.header')
= "#{service.nom},"
= "#{service.organisme},"
= string_to_html(service.adresse, wrapper_tag = 'span')
%span{ lang: :fr }
= "#{service.nom},"
= "#{service.organisme},"
= string_to_html(service.adresse, 'span')
= render partial: "shared/footer_content_list"
.fr-footer__bottom

View file

@ -1,5 +1,5 @@
- content_for(:root_class, 'scroll-margins-for-sticky-footer')
- content_for(:title, "Modification du brouillon nº #{@dossier.id} (#{@dossier.procedure.libelle})")
- content_for(:title, t(".title", scope: :metas, number: @dossier.id.to_s, procedure_label: @dossier.procedure.libelle))
- content_for :footer do
= render partial: "users/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }

View file

@ -1,4 +1,4 @@
- content_for(:title, "Demande · Dossier nº#{@dossier.id} (#{@dossier.procedure.libelle})")
- content_for(:title, t(".title", scope: :metas, number: @dossier.id.to_s, procedure_label: @dossier.procedure.libelle))
- content_for :footer do
= render partial: "users/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }

View file

@ -1,7 +1,7 @@
- if @search_terms.present?
- content_for(:title, "Recherche : #{@search_terms}")
- content_for(:title, t(".title_search", scope: :metas, terms: @search_terms))
- else
- content_for(:title, "Dossiers")
- content_for(:title, t(".title", scope: :metas))
- content_for :footer do
= render partial: "users/dossiers/index_footer"

View file

@ -1,4 +1,4 @@
- content_for(:title, "Dossier bien envoyé (#{@dossier.procedure.libelle})")
- content_for(:title, t(".title", scope: :metas, procedure_label: @dossier.procedure.libelle))
- content_for :footer do
= render partial: "users/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }

View file

@ -1,4 +1,4 @@
- content_for(:title, "Messagerie · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
- content_for(:title, t(".title", scope: :metas, number: @dossier.id.to_s, procedure_label: @dossier.procedure.libelle))
- content_for :footer do
= render partial: "users/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }

View file

@ -1,4 +1,4 @@
- content_for(:title, "Résumé · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
- content_for(:title, t(".title", scope: :metas, number: @dossier.id.to_s, procedure_label: @dossier.procedure.libelle))
- content_for :footer do
= render partial: "users/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }

View file

@ -18,8 +18,8 @@
.header-actions
= render partial: 'invites/dropdown', locals: { dossier: dossier }
- if dossier.can_be_updated_by_user? && !current_page?(modifier_dossier_path(dossier))
= link_to t('views.users.dossiers.show.header.edit_dossier'), modifier_dossier_path(dossier), class: 'button accepted edit-form', 'title'=> "Vous pouvez modifier votre dossier tant qu'il n'est passé en instruction",
aria: { label: "Modifier mon dossier - Vous pouvez modifier votre dossier tant qu'il n'est passé en instruction" }
= link_to t('views.users.dossiers.show.header.edit_dossier'), modifier_dossier_path(dossier), class: 'button accepted edit-form',
title: { label: t('views.users.dossiers.show.header.edit_dossier_title') }
= render(partial: 'users/dossiers/show/print_dossier', locals: { dossier: dossier })
%nav.tabs

View file

@ -218,6 +218,7 @@ en:
show:
header:
edit_dossier: Edit my file
edit_dossier_title: "Edit my file - You can modify your file as long as it has not been sent for processing"
summary: "Summary"
request: "Request"
mailbox: "Mailbox"

View file

@ -214,6 +214,7 @@ fr:
show:
header:
edit_dossier: Modifier mon dossier
edit_dossier_title: "Modifier mon dossier - Vous pouvez modifier votre dossier tant quil nest passé en instruction"
summary: "Résumé"
request: "Demande"
mailbox: "Messagerie"

View file

@ -1,7 +1,6 @@
en:
links:
provider:
name: "DINUM"
provided_by: "la DINUM"
title: "Direction Interministérielle au Numérique"
url: "https://numerique.gouv.fr"
@ -16,12 +15,12 @@ en:
link_1_url: "https://www.numerique.gouv.fr/dinum/"
link_2_label: The source code
description_2: is available under a free license.
copy_html: "Unless otherwise stated, all content on this site is %{link}"
license: "licensed under etalab 2.0"
accessibilite:
label: "Accessibility: partially compliant"
title: "Accessibility declaration"
url: "https://doc.demarches-simplifiees.fr/declaration-daccessibilite"
aide:
title: "Frequently Asked Questions"
api_doc:
label: "API Documentation"
title: "API Documentation"
@ -32,7 +31,7 @@ en:
code:
label: "Source code"
title: "Our Source code is open source"
url: "https://github.com/betagouv/demarches-simplifiees.fr"
url: "https://github.com/demarches-simplifiees/demarches-simplifiees.fr"
cgu:
label: "ToS"
title: "Terms of Service"
@ -41,26 +40,18 @@ en:
label: "Documentation"
title: "Our Documentation"
url: "https://doc.demarches-simplifiees.fr"
doc_nouveautes:
label: "News"
title: "Our latest News"
url: "https://doc.demarches-simplifiees.fr/nouveautes"
faq:
label: "FAQ"
title: "Frequently Asked Questions"
url: "https://faq.demarches-simplifiees.fr"
faq_admin:
label: "FAQ"
title: "Frequently Asked Questions"
url: "https:///faq.demarches-simplifiees.fr/collection/1-administrateur-creation-dun-formulaire"
mentions_legales:
label: "Legal notices"
title: "Legal notices regarding our platform"
url: "https://doc.demarches-simplifiees.fr/mentions-legales"
releases:
label: "Releases"
label: "Releases notes"
title: "Our last updates"
url: "https://github.com/betagouv/demarches-simplifiees.fr/releases"
url: "https://github.com/demarches-simplifiees/demarches-simplifiees.fr/releases"
security:
label: "Security"
title: "Security policy"
@ -72,10 +63,9 @@ en:
suivi:
label: "Audience tracking and privacy"
title: "Tracking and privacy of demarches-simplifiees"
webinaire:
label: "Online workshop registration"
title: "Registration for our online workshop"
url: "https://app.livestorm.co/demarches-simplifiees"
cookies:
label: Cookies
title: Cookies
contact:
label: Contactez-nous
title: Contactez-nous
label: Contact
title: Contact

View file

@ -1,7 +1,6 @@
fr:
links:
provider:
name: "DINUM"
provided_by: "la DINUM"
title: "Direction Interministérielle au Numérique"
url: "https://numerique.gouv.fr"
@ -16,14 +15,12 @@ fr:
link_1_url: "https://www.numerique.gouv.fr/dinum/"
link_2_label: Le code source
description_2: est disponible en licence libre.
copy_html: "Sauf mention contraire, tous les contenus de ce site sont sous %{link}"
license: "licence etalab 2.0"
accessibilite:
label: "Accessibilité : partiellement conforme"
title: "Consulter notre déclaration daccessibilité"
url: "https://doc.demarches-simplifiees.fr/declaration-daccessibilite"
aide:
label: "Aide"
title: "Foire aux Questions"
url: "https://faq.demarches-simplifiees.fr"
api_doc:
label: "Documentation de lAPI"
title: "Documentation graphql de lAPI"
@ -38,7 +35,7 @@ fr:
code:
label: "Code source"
title: "Le code ouvert de demarches-simplifiees"
url: "https://github.com/betagouv/demarches-simplifiees.fr"
url: "https://github.com/demarches-simplifiees/demarches-simplifiees.fr"
contact_technique:
label: "Contact technique"
title: "Contacter notre équipe technique"
@ -46,18 +43,10 @@ fr:
label: "Documentation"
title: "Documentation utilisateur"
url: "https://doc.demarches-simplifiees.fr"
doc_nouveautes:
label: "Nouveautés"
title: "Les dernière nouveautés"
url: "https://doc.demarches-simplifiees.fr/nouveautes"
faq:
label: "FAQ"
title: "Foire aux Questions"
url: "https://faq.demarches-simplifiees.fr"
faq_admin:
label: "FAQ"
title: "Foire aux Questions"
url: "https:///faq.demarches-simplifiees.fr/collection/1-administrateur-creation-dun-formulaire"
mentions_legales:
label: "Mentions légales"
title: "Consulter nos Mentions légales"
@ -65,7 +54,7 @@ fr:
releases:
label: "Nouveautés"
title: "Les dernière mises à jour de la plateforme"
url: "https://github.com/betagouv/demarches-simplifiees.fr/releases"
url: "https://github.com/demarches-simplifiees/demarches-simplifiees.fr/releases"
security:
label: "Sécurité"
title: "Vous avez identifié une faille, comment nous en informer"
@ -80,10 +69,6 @@ fr:
suivi:
label: "Suivi daudience et vie privée"
title: "Consulter notre politique de respect de la vie privée"
webinaire:
label: "Inscription ateliers en ligne"
title: "Inscription ateliers en ligne"
url: "https://app.livestorm.co/demarches-simplifiees"
solidarite_numerique:
label: "Besoin daide avec vos démarches en ligne ?"
title: "Avez-vous besoin daide concernant vos démarchez informatisées, essayez solidarite-numerique.fr"

View file

@ -2,3 +2,18 @@ en:
metas:
signin:
title: "Sign-in"
users:
dossiers:
index:
title: Files
title_search: "Search: %{terms}"
show:
title: "Summary · File nº %{number} (%{procedure_label})"
demande:
title: "Application · File nº %{number} (%{procedure_label})"
messagerie:
title: "Mailbox · File nº %{number} (%{procedure_label})"
brouillon:
title: "Modification of draft nº %{number} (%{procedure_label})"
merci:
title: "File submitted (%{procedure_label})"

View file

@ -2,3 +2,18 @@ fr:
metas:
signin:
title: "Se connecter"
users:
dossiers:
index:
title: Dossiers
title_search: "Recherche : %{terms}"
show:
title: "Résumé · Dossier nº %{number} (%{procedure_label})"
demande:
title: "Demande · Dossier nº %{number} (%{procedure_label})"
messagerie:
title: "Messagerie · Dossier nº %{number} (%{procedure_label})"
brouillon:
title: "Modification du brouillon nº %{number} (%{procedure_label})"
merci:
title: "Dossier envoyé (%{procedure_label})"

View file

@ -0,0 +1,28 @@
---
en:
root:
landing:
promise: |
Carry out
an administrative procedure
online
have_a_procedure: You wish to make a request to an administration?
fill_procedure: Make your requests easily and find your files online
how_to_find_procedure: How do I find my procedure?
our_numbers: "%{name} in numbers"
numbers:
administrations: |
partner
administrations
files: |
files
submitted
processing_time: |
reduction
in processing time
question: A question, a problem?
answer_in_faq: The answer is in the online help
online_help: Access the online help
administration_dematerialize: "Administration: do you want to go paperless?"
administration_fill_online: Offer your users the possibility to fill in their files online
administration_discover: Find out more about our tool

View file

@ -0,0 +1,28 @@
---
fr:
root:
landing:
promise: |
Effectuer
une démarche administrative
en ligne
have_a_procedure: Vous souhaitez effectuer une demande auprès dune administration ?
fill_procedure: Réalisez vos demandes en toute simplicité et retrouvez vos dossiers en ligne
how_to_find_procedure: Comment trouver ma démarche ?
our_numbers: "%{name} en chiffres"
numbers:
administrations: |
administrations
partenaires
files: |
dossiers
déposés
processing_time: |
de réduction
des délais de traitement
question: Une question, un problème ?
answer_in_faq: La réponse est dans laide en ligne
online_help: Accéder à laide en ligne
administration_dematerialize: "Administration : vous voulez dématerialiser ?"
administration_fill_online: Proposez à vos usagers de remplir leurs dossiers en ligne
administration_discover: Découvrez notre outil

View file

@ -8,7 +8,7 @@ en:
in_app_mail:
link: "Direclty via the chat"
email:
link: "Direcly by email %{service_email}"
link: "Directly by email %{service_email}"
phone:
link: 'By phone %{service_telephone}'
schedule:
@ -20,3 +20,8 @@ en:
data_retention: "%{application_name} : %{duree_conservation_dossiers_dans_ds} months"
terms: "Laws regarding this data collection"
dpo: "Contact the Data Protection Officer"
dematerialisation:
header: Paperless
title_1: Access to the printable PDF form
title_2: Online administrative procedures
link: "https://www.solidarite-numerique.fr/cartographie/"

View file

@ -35,7 +35,7 @@ fr:
title: data.gouv.fr
url: "https://data.gouv.fr"
dematerialisation:
header: Dematérialisation
header: Dématérialisation
title_1: Accès au formulaire PDF à imprimer
title_2: Les démarches administratives en ligne
link: "https://www.solidarite-numerique.fr/cartographie/"

View file

@ -18,6 +18,15 @@ describe 'wcag rules for usager', js: true do
end
end
shared_examples "aria-label do not mix with title attribute" do
it do
elements = page.all("[aria-label][title]")
elements.each do |element|
expect(element[:title]).to be_blank, "path=#{path}, element title=\"#{element[:title]}\" mixes aria-label and title attributes"
end
end
end
context 'pages without the need to be logged in' do
before do
visit path
@ -27,12 +36,14 @@ describe 'wcag rules for usager', js: true do
let(:path) { root_path }
it { expect(page).to be_axe_clean }
it_behaves_like "external links have title says it opens in a new tab"
it_behaves_like "aria-label do not mix with title attribute"
end
context 'sign_up page' do
let(:path) { new_user_registration_path }
it { expect(page).to be_axe_clean }
it_behaves_like "external links have title says it opens in a new tab"
it_behaves_like "aria-label do not mix with title attribute"
end
scenario 'account confirmation page' do
@ -51,24 +62,28 @@ describe 'wcag rules for usager', js: true do
let(:path) { user_confirmation_path("user[email]" => "some@email.com") }
it_behaves_like "external links have title says it opens in a new tab"
it_behaves_like "aria-label do not mix with title attribute"
end
context 'sign_in page' do
let(:path) { new_user_session_path }
it { expect(page).to be_axe_clean.excluding '#user_email' }
it_behaves_like "external links have title says it opens in a new tab"
it_behaves_like "aria-label do not mix with title attribute"
end
context 'contact page' do
let(:path) { contact_path }
it { expect(page).to be_axe_clean }
it_behaves_like "external links have title says it opens in a new tab"
it_behaves_like "aria-label do not mix with title attribute"
end
context 'commencer page' do
let(:path) { commencer_path(path: procedure.path) }
it { expect(page).to be_axe_clean }
it_behaves_like "external links have title says it opens in a new tab"
it_behaves_like "aria-label do not mix with title attribute"
end
scenario 'commencer page, help dropdown' do