From d17b63709715662be9c510d9201f805bc6db8544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20D=C3=ADaz?= Date: Thu, 6 Jul 2017 20:59:19 +0100 Subject: [PATCH] Add helper to simplify the build of language selector --- config.rb | 13 +++++++++++++ source/layouts/layout.html.haml | 12 +++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/config.rb b/config.rb index d217b5c..37f7686 100644 --- a/config.rb +++ b/config.rb @@ -154,6 +154,19 @@ helpers do def path_to_url(path) Addressable::URI.join(config.site_url, path).normalize.to_s end + + def available_translation_for(language) + language_name = language.last[:name] + language_path = "source/#{language.first}" + + if File.exists?("#{language_path}/#{$last_version}") + "#{$last_version} #{language_name}" + elsif File.exists?("#{language_path}/#{$previous_version}") + "#{$previous_version} #{language_name}" + else + nil + end + end end # -------------------------------------- diff --git a/source/layouts/layout.html.haml b/source/layouts/layout.html.haml index af6027c..f57b928 100644 --- a/source/layouts/layout.html.haml +++ b/source/layouts/layout.html.haml @@ -46,16 +46,10 @@ %nav.locales{ role: "navigation" } %select - $languages.each do |language| - - version_exists = File.exists?("source/#{language.first}/#{$last_version}") - selected = language_code == language.first - - if version_exists - %option{ selected: selected, label: "#{$last_version} #{language.last[:name]}", value: language.first } - = "#{$last_version} #{language.last[:name]}" - - else - - previous_version = File.exists?("source/#{language.first}/#{$previous_version}") - - if previous_version - %option{ selected: selected, label: "#{$previous_version} #{language.last[:name]}", value: language.first } - = "#{$previous_version} #{language.last[:name]}" + - if available_translation = available_translation_for(language) + %option{ selected: selected, label: available_translation, value: language.first } + = available_translation .main{ role: "main" } - if !latest_version