From: Andy Allan Date: Wed, 15 Mar 2023 18:08:59 +0000 (+0000) Subject: Use .with_locale for about page X-Git-Tag: live~1315^2~2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/a91afa0e78a5fa3e54aee38ec64c43fcea0b7abb Use .with_locale for about page This simplifies the code, since we can avoid having to specify the locale for every translation. The test was added since I originally developed another approach, but that caused exceptions on invalid locales. --- diff --git a/app/views/site/_about_section.html.erb b/app/views/site/_about_section.html.erb index ead28f9fd..60fd3f069 100644 --- a/app/views/site/_about_section.html.erb +++ b/app/views/site/_about_section.html.erb @@ -1,7 +1,7 @@ <%= tag.div :class => "section", :id => local_assigns[:id] do %>
-

<%= t "site.about.#{title}_title", :locale => @locale %>

+

<%= t "site.about.#{title}_title" %>

<%= yield %> <% end %> diff --git a/app/views/site/about.html.erb b/app/views/site/about.html.erb index 5011523e1..12d9a0608 100644 --- a/app/views/site/about.html.erb +++ b/app/views/site/about.html.erb @@ -1,45 +1,46 @@ -<%= tag.div :lang => @locale, :dir => t("html.dir", :locale => @locale) do %> -
-
-
-
-

<%= t ".copyright_html", :locale => @locale %>

+<% I18n.with_locale @locale do %> + <%= tag.div :lang => @locale, :dir => t("html.dir") do %> +
+
+
+
+

<%= t ".copyright_html" %>

+
-
-
-
-

<%= t ".used_by_html", :name => tag.span("OpenStreetMap", :class => "user-name"), :locale => @locale %>

+
+
+

<%= t ".used_by_html", :name => tag.span("OpenStreetMap", :class => "user-name") %>

+
-
-
-

<%= t ".lede_text", :locale => @locale %>

+
+

<%= t ".lede_text" %>

- <%= render :layout => "about_section", :locals => { :icon => "local", :title => "local_knowledge" } do %> -

<%= t "site.about.local_knowledge_html", :locale => @locale %>

- <% end %> + <%= render :layout => "about_section", :locals => { :icon => "local", :title => "local_knowledge" } do %> +

<%= t "site.about.local_knowledge_html" %>

+ <% end %> - <%= render :layout => "about_section", :locals => { :icon => "community", :title => "community_driven" } do %> -

<%= t "site.about.community_driven_html", :locale => @locale, :diary_path => diary_entries_path %>

- <% end %> + <%= render :layout => "about_section", :locals => { :icon => "community", :title => "community_driven" } do %> +

<%= t "site.about.community_driven_html", :diary_path => diary_entries_path %>

+ <% end %> - <%= render :layout => "about_section", :locals => { :id => "open-data", :icon => "open", :title => "open_data" } do %> -

<%= t "site.about.open_data_html", :locale => @locale, :copyright_path => copyright_path %>

- <% end %> + <%= render :layout => "about_section", :locals => { :id => "open-data", :icon => "open", :title => "open_data" } do %> +

<%= t "site.about.open_data_html", :copyright_path => copyright_path %>

+ <% end %> - <%= render :layout => "about_section", :locals => { :id => "legal", :icon => "legal", :title => "legal" } do %> -

<%= t "site.about.legal_1_html", :locale => @locale %>

-

<%= t "site.about.legal_2_html", :locale => @locale %>

- <% end %> + <%= render :layout => "about_section", :locals => { :id => "legal", :icon => "legal", :title => "legal" } do %> +

<%= t "site.about.legal_1_html" %>

+

<%= t "site.about.legal_2_html" %>

+ <% end %> - <%= render :layout => "about_section", :locals => { :id => "partners", :icon => "partners", :title => "partners" } do %> -

<%= t "layouts.hosting_partners_html", :locale => @locale, - :ucl => link_to(t("layouts.partners_ucl", :locale => @locale), "https://www.ucl.ac.uk"), - :fastly => link_to(t("layouts.partners_fastly", :locale => @locale), "https://www.fastly.com/"), - :bytemark => link_to(t("layouts.partners_bytemark", :locale => @locale), "https://www.bytemark.co.uk"), - :partners => link_to(t("layouts.partners_partners", :locale => @locale), "https://hardware.openstreetmap.org/thanks/") %> -

- <% end %> -
+ <%= render :layout => "about_section", :locals => { :id => "partners", :icon => "partners", :title => "partners" } do %> +

<%= t "layouts.hosting_partners_html", :ucl => link_to(t("layouts.partners_ucl"), "https://www.ucl.ac.uk"), + :fastly => link_to(t("layouts.partners_fastly"), "https://www.fastly.com/"), + :bytemark => link_to(t("layouts.partners_bytemark"), "https://www.bytemark.co.uk"), + :partners => link_to(t("layouts.partners_partners"), "https://hardware.openstreetmap.org/thanks/") %> +

+ <% end %> +
+ <% end %> <% end %> diff --git a/test/controllers/site_controller_test.rb b/test/controllers/site_controller_test.rb index 8a38da5c0..75a042bfe 100644 --- a/test/controllers/site_controller_test.rb +++ b/test/controllers/site_controller_test.rb @@ -476,6 +476,11 @@ class SiteControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template "about" assert_select "div[lang='ar'][dir='rtl']" + + # Page should still render even with incorrect locale + get about_path(:about_locale => "zzz") + assert_response :success + assert_template "about" end # Test the export page