From c8f2cd8b44a99c03cbd64eb1ca7b24513e1f36cf Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Sun, 20 Dec 2020 15:02:17 +0900 Subject: [PATCH 1/3] Reset build dir before upload to Crowdin --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index 10ddea3..6914bfb 100644 --- a/Rakefile +++ b/Rakefile @@ -69,7 +69,7 @@ namespace :crowdin do end desc "Upload translation sources" - task :upload do + task :upload => :build_trans_src do sh "crowdin", "upload", "sources" end From fee42c1bce8403197b54f51cdc004bd4e3f4ae02 Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Sun, 20 Dec 2020 15:05:48 +0900 Subject: [PATCH 2/3] Download translations before building traslation site --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index 6914bfb..8546ab6 100644 --- a/Rakefile +++ b/Rakefile @@ -36,7 +36,7 @@ task :build_base do end desc "Build site for translate.docs.joinplu.me" -task :build_trans do +task :build_trans => "crowdin:download" do sh "middleman", "build", "--build-dir", TRANS_DIR (LOCALE_DIR/PSEUDO_LANG/"trans").glob("**/*.html").each do |html| From fe5712c08057ac700c5139817d61f68c36168735 Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Sun, 20 Dec 2020 15:10:53 +0900 Subject: [PATCH 3/3] Add language switcher --- data/languages.yaml | 34 ++++++++++++++ source/images/LanguageIcon.png | Bin 0 -> 4772 bytes source/javascripts/site.js | 22 ++++++++- source/layouts/layout.erb | 8 ++++ source/stylesheets/site.css.scss | 76 +++++++++++++++++++++++++++++++ 5 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 data/languages.yaml create mode 100755 source/images/LanguageIcon.png diff --git a/data/languages.yaml b/data/languages.yaml new file mode 100644 index 0000000..e4eab9f --- /dev/null +++ b/data/languages.yaml @@ -0,0 +1,34 @@ +--- +af: Afrikaans +ar: العربية +ca: Català +cs: Česky +da: Dansk +de: Deutsch +el: Ελληνικά +en: English +eo: Esperanto +es: Español +fa: فارسی +fi: Suomi +fr: Français +gl: Galego +he: עברית +hu: Magyar +it: Italiano +ja: 日本語 +ko: 한국어 +nl: Nederlands +'no': Norsk (bokmål) +pl: Polski +pt: Português +ro: Română +ru: Русский +sat: ᱥᱟᱱᱛᱟᱲᱤ +si: සිංහල +sr: Српски +sv: Svenska +tr: Türkçe +uk: Українська +vi: Việtnam +zh: 中文 diff --git a/source/images/LanguageIcon.png b/source/images/LanguageIcon.png new file mode 100755 index 0000000000000000000000000000000000000000..aec3433bf5fb9a8a26c0727259bc9cc8f46fe644 GIT binary patch literal 4772 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 literal 0 HcmV?d00001 diff --git a/source/javascripts/site.js b/source/javascripts/site.js index 3b7183b..cf2196a 100644 --- a/source/javascripts/site.js +++ b/source/javascripts/site.js @@ -1,3 +1,23 @@ document.getElementById('menu').addEventListener('click', evt => evt.target.parentElement.classList.toggle('show') -) \ No newline at end of file +) + +document.addEventListener('DOMContentLoaded', () => { + for (const switcher of document.getElementsByClassName('language-switcher')) { + const control = switcher.querySelector('[aria-haspopup]'); + control.addEventListener('click', event => { + const popupId = control.getAttribute('aria-controls'); + if (! popupId) return; + const popup = document.getElementById(popupId); + if (! popup) return; + if (control.getAttribute('aria-expanded') === 'true') { + control.setAttribute('aria-expanded', 'false'); + popup.setAttribute('aria-hidden', 'true'); + } else { + control.setAttribute('aria-expanded', 'true'); + popup.setAttribute('aria-hidden', 'false'); + + } + }); + } +}); diff --git a/source/layouts/layout.erb b/source/layouts/layout.erb index 18ff900..534c6f8 100644 --- a/source/layouts/layout.erb +++ b/source/layouts/layout.erb @@ -28,6 +28,14 @@

<%= current_page.data.title %>

<%= current_page.data.summary %>

+
+ + +