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.
This commit is contained in:
parent
5d86e624b0
commit
a91afa0e78
3 changed files with 48 additions and 42 deletions
|
@ -1,7 +1,7 @@
|
|||
<%= tag.div :class => "section", :id => local_assigns[:id] do %>
|
||||
<div class='d-flex align-items-center gap-2 mb-2'>
|
||||
<div class='flex-shrink-0 icon <%= icon %>'></div>
|
||||
<h2 class='flex-grow-1 mb-0'><%= t "site.about.#{title}_title", :locale => @locale %></h2>
|
||||
<h2 class='flex-grow-1 mb-0'><%= t "site.about.#{title}_title" %></h2>
|
||||
</div>
|
||||
<%= yield %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,45 +1,46 @@
|
|||
<%= tag.div :lang => @locale, :dir => t("html.dir", :locale => @locale) do %>
|
||||
<div class="container-lg attr">
|
||||
<div class='row'>
|
||||
<div class='col-sm-7 user-image'></div>
|
||||
<div class='col-sm-5 px-5 py-3 byosm'>
|
||||
<p class='h5 text-white text-nowrap'><%= t ".copyright_html", :locale => @locale %></p>
|
||||
<% I18n.with_locale @locale do %>
|
||||
<%= tag.div :lang => @locale, :dir => t("html.dir") do %>
|
||||
<div class="container-lg attr">
|
||||
<div class='row'>
|
||||
<div class='col-sm-7 user-image'></div>
|
||||
<div class='col-sm-5 px-5 py-3 byosm'>
|
||||
<p class='h5 text-white text-nowrap'><%= t ".copyright_html" %></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class="w-100 px-5 py-4 bg-dark">
|
||||
<h1 class="text-white fw-light"><%= t ".used_by_html", :name => tag.span("OpenStreetMap", :class => "user-name") %></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class="w-100 px-5 py-4 bg-dark">
|
||||
<h1 class="text-white fw-light"><%= t ".used_by_html", :name => tag.span("OpenStreetMap", :class => "user-name"), :locale => @locale %></h1>
|
||||
</div>
|
||||
|
||||
<div class='bg-white px-5 py-4'>
|
||||
<p class="lead"><%= t ".lede_text" %></p>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :icon => "local", :title => "local_knowledge" } do %>
|
||||
<p><%= t "site.about.local_knowledge_html" %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :icon => "community", :title => "community_driven" } do %>
|
||||
<p><%= t "site.about.community_driven_html", :diary_path => diary_entries_path %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :id => "open-data", :icon => "open", :title => "open_data" } do %>
|
||||
<p><%= t "site.about.open_data_html", :copyright_path => copyright_path %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :id => "legal", :icon => "legal", :title => "legal" } do %>
|
||||
<p><%= t "site.about.legal_1_html" %></p>
|
||||
<p><%= t "site.about.legal_2_html" %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :id => "partners", :icon => "partners", :title => "partners" } do %>
|
||||
<p><%= 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/") %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='bg-white px-5 py-4'>
|
||||
<p class="lead"><%= t ".lede_text", :locale => @locale %></p>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :icon => "local", :title => "local_knowledge" } do %>
|
||||
<p><%= t "site.about.local_knowledge_html", :locale => @locale %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :icon => "community", :title => "community_driven" } do %>
|
||||
<p><%= t "site.about.community_driven_html", :locale => @locale, :diary_path => diary_entries_path %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :id => "open-data", :icon => "open", :title => "open_data" } do %>
|
||||
<p><%= t "site.about.open_data_html", :locale => @locale, :copyright_path => copyright_path %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :id => "legal", :icon => "legal", :title => "legal" } do %>
|
||||
<p><%= t "site.about.legal_1_html", :locale => @locale %></p>
|
||||
<p><%= t "site.about.legal_2_html", :locale => @locale %></p>
|
||||
<% end %>
|
||||
|
||||
<%= render :layout => "about_section", :locals => { :id => "partners", :icon => "partners", :title => "partners" } do %>
|
||||
<p><%= 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/") %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue