From e8daaa7e0d557f259c145ce033a8de81293be84b Mon Sep 17 00:00:00 2001 From: Arthur CHAN Date: Wed, 10 Dec 2014 23:14:40 +0800 Subject: [PATCH] fix dialect overflow in locale picker for example show TW instead of zh-TW --- core/app/helpers/refinery/admin_helper.rb | 4 ++++ .../views/refinery/admin/_locale_picker.html.erb | 6 ++---- core/spec/helpers/refinery/admin_helper_spec.rb | 15 +++++++++++++++ .../app/views/refinery/admin/pages/_page.html.erb | 7 +++---- 4 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 core/spec/helpers/refinery/admin_helper_spec.rb diff --git a/core/app/helpers/refinery/admin_helper.rb b/core/app/helpers/refinery/admin_helper.rb index 6c9e52c78f..1021765c65 100644 --- a/core/app/helpers/refinery/admin_helper.rb +++ b/core/app/helpers/refinery/admin_helper.rb @@ -5,6 +5,10 @@ def current_admin_locale # TODO: move current_admin_locale to Refinery::I18n ::I18n.locale end + + def locale_country(locale) + locale.to_s.upcase.split('-').last + end end end diff --git a/core/app/views/refinery/admin/_locale_picker.html.erb b/core/app/views/refinery/admin/_locale_picker.html.erb index e54a058c3f..985ad3641f 100644 --- a/core/app/views/refinery/admin/_locale_picker.html.erb +++ b/core/app/views/refinery/admin/_locale_picker.html.erb @@ -5,16 +5,14 @@ <% locales = Refinery::I18n.locales.clone %> <% Refinery::I18n.frontend_locales.each do |locale| %> <% locale_name = locales.delete(locale) %> - > <%= link_to refinery.url_for(:switch_locale => locale, :parent_id => params[:parent_id]), id: locale do %>
- <%= refinery_icon_tag('locale.svg', :size => '24x24') %> - <%= locale.upcase %> + <%= refinery_icon_tag('locale.svg', :size => '24x24', :alt => locale.upcase) %> + <%= locale_country(locale) %>
<%= locale_name %> <% end %> - <% end %> diff --git a/core/spec/helpers/refinery/admin_helper_spec.rb b/core/spec/helpers/refinery/admin_helper_spec.rb new file mode 100644 index 0000000000..46054f8efb --- /dev/null +++ b/core/spec/helpers/refinery/admin_helper_spec.rb @@ -0,0 +1,15 @@ +require "spec_helper" + +module Refinery + describe AdminHelper, :type => :helper do + describe "locale_country" do + it "should return the second part of a dialect" do + expect(helper.locale_country('zh-TW')).to eq("TW") + end + + it "should return the locale if it is not a dialect" do + expect(helper.locale_country('en')).to eq("EN") + end + end + end +end diff --git a/pages/app/views/refinery/admin/pages/_page.html.erb b/pages/app/views/refinery/admin/pages/_page.html.erb index 12b0cd82c3..8562962c0b 100644 --- a/pages/app/views/refinery/admin/pages/_page.html.erb +++ b/pages/app/views/refinery/admin/pages/_page.html.erb @@ -15,13 +15,12 @@ <% page.translations.sort_by{ |t| Refinery::I18n.frontend_locales.index(t.locale)}.each do |translation| %> <% if translation.title.present? %> <%= link_to refinery.admin_edit_page_path(page.nested_url, :switch_locale => translation.locale), - :class => 'locale' do %> + :class => 'locale', :title => translation.locale.upcase do %>
- <%= refinery_icon_tag('locale-blue.svg', :size => '24x24') %> - <%= translation.locale.upcase %> + <%= refinery_icon_tag('locale-blue.svg', :size => '24x24', :alt => translation.locale.upcase) %> + <%= locale_country(translation.locale) %>
- <% end %> <% end %> <% end %>