Skip to content

Commit

Permalink
Merge pull request #1878 from dscho/allow-navigating-between-book-sec…
Browse files Browse the repository at this point in the history
…tions-translations

Allow navigating between book sections' translations
  • Loading branch information
dscho authored Oct 13, 2024
2 parents a29d864 + 0428ef0 commit b99d8f9
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 31 deletions.
14 changes: 14 additions & 0 deletions layouts/partials/sidebar.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,20 @@
</ul>
{{ if (eq .Params.Sidebar "book") }}
<hr class="sidebar">
{{- /* If this page displays a section of the ProGit book, map all the translations thereof */ -}}
{{ with $.Page.Params.book }}
{{ $cs_number := .section.cs_number }}
{{ range $.Page.Site.Data.book }}
{{ $language_code := .language_code }}
{{ range .chapters }}
{{ range .sections }}
{{ if (eq .cs_number $cs_number) }}
{{ $.Scratch.SetInMap "translations" $language_code .url }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ partial "translations.html" . }}
{{ else if (and (ne $section "documentation") (ne $section "site")) }}
<hr class="sidebar">
Expand Down
5 changes: 5 additions & 0 deletions layouts/partials/translated-chapter.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{{- with (index (.ctx.Scratch.Get "translations") .lang) -}}
{{- relURL . -}}
{{- else -}}
{{- relURL (add "book/" .lang) -}}
{{- end -}}
60 changes: 30 additions & 30 deletions layouts/partials/translations.html
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
<p>
This book is available in
<a href="{{ relURL "book/en" }}">English</a>.
<a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "en") }}">English</a>.
</p>
<p>
Full translation available in
<table>
<tr><td><a href="{{ relURL "book/az" }}">azərbaycan dili</a>,</td></tr>
<tr><td><a href="{{ relURL "book/bg" }}">български език</a>,</td></tr>
<tr><td><a href="{{ relURL "book/de" }}">Deutsch</a>,</td></tr>
<tr><td><a href="{{ relURL "book/es" }}">Español</a>,</td></tr>
<tr><td><a href="{{ relURL "book/fr" }}">Français</a>,</td></tr>
<tr><td><a href="{{ relURL "book/gr" }}">Ελληνικά</a>,</td></tr>
<tr><td><a href="{{ relURL "book/ja" }}">日本語</a>,</td></tr>
<tr><td><a href="{{ relURL "book/ko" }}">한국어</a>,</td></tr>
<tr><td><a href="{{ relURL "book/nl" }}">Nederlands</a>,</td></tr>
<tr><td><a href="{{ relURL "book/ru" }}">Русский</a>,</td></tr>
<tr><td><a href="{{ relURL "book/sl" }}">Slovenščina</a>,</td></tr>
<tr><td><a href="{{ relURL "book/tl" }}">Tagalog</a>,</td></tr>
<tr><td><a href="{{ relURL "book/uk" }}">Українська</a></td></tr>
<tr><td><a href="{{ relURL "book/zh" }}">简体中文</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "az") }}">azərbaycan dili</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "bg") }}">български език</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "de") }}">Deutsch</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "es") }}">Español</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "fr") }}">Français</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "gr") }}">Ελληνικά</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ja") }}">日本語</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ko") }}">한국어</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "nl") }}">Nederlands</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ru") }}">Русский</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "sl") }}">Slovenščina</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "tl") }}">Tagalog</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "uk") }}">Українська</a></td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "zh") }}">简体中文</a>,</td></tr>
</table>
</p>
<p>
Partial translations available in
<table>
<tr><td><a href="{{ relURL "book/cs" }}">Čeština</a>,</td></tr>
<tr><td><a href="{{ relURL "book/mk" }}">Македонски</a>,</td></tr>
<tr><td><a href="{{ relURL "book/pl" }}">Polski</a>,</td></tr>
<tr><td><a href="{{ relURL "book/sr" }}">Српски</a>,</td></tr>
<tr><td><a href="{{ relURL "book/uz" }}">Ўзбекча</a>,</td></tr>
<tr><td><a href="{{ relURL "book/zh-tw" }}">繁體中文</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "cs") }}">Čeština</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "mk") }}">Македонски</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "pl") }}">Polski</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "sr") }}">Српски</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "uz") }}">Ўзбекча</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "zh-tw") }}">繁體中文</a>,</td></tr>
</table>
</p>
<p>
Translations started for
<table>
<tr><td><a href="{{ relURL "book/be" }}">Беларуская</a>,</td></tr>
<tr><td><a href="{{ relURL "book/fa" }}" dir="rtl">فارسی</a>,</td></tr>
<tr><td><a href="{{ relURL "book/id" }}">Indonesian</a>,</td></tr>
<tr><td><a href="{{ relURL "book/it" }}">Italiano</a>,</td></tr>
<tr><td><a href="{{ relURL "book/ms" }}">Bahasa Melayu</a>,</td></tr>
<tr><td><a href="{{ relURL "book/pt-br" }}">Português (Brasil)</a>,</td></tr>
<tr><td><a href="{{ relURL "book/pt-pt" }}">Português (Portugal)</a>,</td></tr>
<tr><td><a href="{{ relURL "book/sv" }}">Svenska</a>,</td></tr>
<tr><td><a href="{{ relURL "book/tr" }}">Türkçe</a>.</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "be") }}">Беларуская</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "fa") }}" dir="rtl">فارسی</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "id") }}">Indonesian</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "it") }}">Italiano</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ms") }}">Bahasa Melayu</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "pt-br") }}">Português (Brasil)</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "pt-pt") }}">Português (Portugal)</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "sv") }}">Svenska</a>,</td></tr>
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "tr") }}">Türkçe</a>.</td></tr>
</table>
</p>
<hr class="sidebar"/>
Expand Down
3 changes: 2 additions & 1 deletion tests/git-scm.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,8 @@ test('book', async ({ page }) => {
}
await page.getByRole('link', { name: 'Français' }).click()
await expect(page).toHaveURL(/book\/fr/)
await expect(page.getByRole('link', { name: 'Démarrage rapide' })).toBeVisible()
await expect(page.locator('.inner h1')).toHaveText(/Démarrage rapide/)
await expect(page.getByRole('link', { name: 'Démarrage rapide' })).not.toBeVisible()

// the repository URL now points to the French translation
await expect(page.getByRole('link', { name: 'hosted on GitHub' }))
Expand Down

0 comments on commit b99d8f9

Please sign in to comment.