Skip to content

Commit b99d8f9

Browse files
authored
Merge pull request #1878 from dscho/allow-navigating-between-book-sections-translations
Allow navigating between book sections' translations
2 parents a29d864 + 0428ef0 commit b99d8f9

File tree

4 files changed

+51
-31
lines changed

4 files changed

+51
-31
lines changed

layouts/partials/sidebar.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,20 @@
5151
</ul>
5252
{{ if (eq .Params.Sidebar "book") }}
5353
<hr class="sidebar">
54+
{{- /* If this page displays a section of the ProGit book, map all the translations thereof */ -}}
55+
{{ with $.Page.Params.book }}
56+
{{ $cs_number := .section.cs_number }}
57+
{{ range $.Page.Site.Data.book }}
58+
{{ $language_code := .language_code }}
59+
{{ range .chapters }}
60+
{{ range .sections }}
61+
{{ if (eq .cs_number $cs_number) }}
62+
{{ $.Scratch.SetInMap "translations" $language_code .url }}
63+
{{ end }}
64+
{{ end }}
65+
{{ end }}
66+
{{ end }}
67+
{{ end }}
5468
{{ partial "translations.html" . }}
5569
{{ else if (and (ne $section "documentation") (ne $section "site")) }}
5670
<hr class="sidebar">
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{{- with (index (.ctx.Scratch.Get "translations") .lang) -}}
2+
{{- relURL . -}}
3+
{{- else -}}
4+
{{- relURL (add "book/" .lang) -}}
5+
{{- end -}}

layouts/partials/translations.html

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
11
<p>
22
This book is available in
3-
<a href="{{ relURL "book/en" }}">English</a>.
3+
<a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "en") }}">English</a>.
44
</p>
55
<p>
66
Full translation available in
77
<table>
8-
<tr><td><a href="{{ relURL "book/az" }}">azərbaycan dili</a>,</td></tr>
9-
<tr><td><a href="{{ relURL "book/bg" }}">български език</a>,</td></tr>
10-
<tr><td><a href="{{ relURL "book/de" }}">Deutsch</a>,</td></tr>
11-
<tr><td><a href="{{ relURL "book/es" }}">Español</a>,</td></tr>
12-
<tr><td><a href="{{ relURL "book/fr" }}">Français</a>,</td></tr>
13-
<tr><td><a href="{{ relURL "book/gr" }}">Ελληνικά</a>,</td></tr>
14-
<tr><td><a href="{{ relURL "book/ja" }}">日本語</a>,</td></tr>
15-
<tr><td><a href="{{ relURL "book/ko" }}">한국어</a>,</td></tr>
16-
<tr><td><a href="{{ relURL "book/nl" }}">Nederlands</a>,</td></tr>
17-
<tr><td><a href="{{ relURL "book/ru" }}">Русский</a>,</td></tr>
18-
<tr><td><a href="{{ relURL "book/sl" }}">Slovenščina</a>,</td></tr>
19-
<tr><td><a href="{{ relURL "book/tl" }}">Tagalog</a>,</td></tr>
20-
<tr><td><a href="{{ relURL "book/uk" }}">Українська</a></td></tr>
21-
<tr><td><a href="{{ relURL "book/zh" }}">简体中文</a>,</td></tr>
8+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "az") }}">azərbaycan dili</a>,</td></tr>
9+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "bg") }}">български език</a>,</td></tr>
10+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "de") }}">Deutsch</a>,</td></tr>
11+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "es") }}">Español</a>,</td></tr>
12+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "fr") }}">Français</a>,</td></tr>
13+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "gr") }}">Ελληνικά</a>,</td></tr>
14+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ja") }}">日本語</a>,</td></tr>
15+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ko") }}">한국어</a>,</td></tr>
16+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "nl") }}">Nederlands</a>,</td></tr>
17+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ru") }}">Русский</a>,</td></tr>
18+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "sl") }}">Slovenščina</a>,</td></tr>
19+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "tl") }}">Tagalog</a>,</td></tr>
20+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "uk") }}">Українська</a></td></tr>
21+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "zh") }}">简体中文</a>,</td></tr>
2222
</table>
2323
</p>
2424
<p>
2525
Partial translations available in
2626
<table>
27-
<tr><td><a href="{{ relURL "book/cs" }}">Čeština</a>,</td></tr>
28-
<tr><td><a href="{{ relURL "book/mk" }}">Македонски</a>,</td></tr>
29-
<tr><td><a href="{{ relURL "book/pl" }}">Polski</a>,</td></tr>
30-
<tr><td><a href="{{ relURL "book/sr" }}">Српски</a>,</td></tr>
31-
<tr><td><a href="{{ relURL "book/uz" }}">Ўзбекча</a>,</td></tr>
32-
<tr><td><a href="{{ relURL "book/zh-tw" }}">繁體中文</a>,</td></tr>
27+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "cs") }}">Čeština</a>,</td></tr>
28+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "mk") }}">Македонски</a>,</td></tr>
29+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "pl") }}">Polski</a>,</td></tr>
30+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "sr") }}">Српски</a>,</td></tr>
31+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "uz") }}">Ўзбекча</a>,</td></tr>
32+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "zh-tw") }}">繁體中文</a>,</td></tr>
3333
</table>
3434
</p>
3535
<p>
3636
Translations started for
3737
<table>
38-
<tr><td><a href="{{ relURL "book/be" }}">Беларуская</a>,</td></tr>
39-
<tr><td><a href="{{ relURL "book/fa" }}" dir="rtl">فارسی</a>,</td></tr>
40-
<tr><td><a href="{{ relURL "book/id" }}">Indonesian</a>,</td></tr>
41-
<tr><td><a href="{{ relURL "book/it" }}">Italiano</a>,</td></tr>
42-
<tr><td><a href="{{ relURL "book/ms" }}">Bahasa Melayu</a>,</td></tr>
43-
<tr><td><a href="{{ relURL "book/pt-br" }}">Português (Brasil)</a>,</td></tr>
44-
<tr><td><a href="{{ relURL "book/pt-pt" }}">Português (Portugal)</a>,</td></tr>
45-
<tr><td><a href="{{ relURL "book/sv" }}">Svenska</a>,</td></tr>
46-
<tr><td><a href="{{ relURL "book/tr" }}">Türkçe</a>.</td></tr>
38+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "be") }}">Беларуская</a>,</td></tr>
39+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "fa") }}" dir="rtl">فارسی</a>,</td></tr>
40+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "id") }}">Indonesian</a>,</td></tr>
41+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "it") }}">Italiano</a>,</td></tr>
42+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "ms") }}">Bahasa Melayu</a>,</td></tr>
43+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "pt-br") }}">Português (Brasil)</a>,</td></tr>
44+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "pt-pt") }}">Português (Portugal)</a>,</td></tr>
45+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "sv") }}">Svenska</a>,</td></tr>
46+
<tr><td><a href="{{ partial "translated-chapter.html" (dict "ctx" . "lang" "tr") }}">Türkçe</a>.</td></tr>
4747
</table>
4848
</p>
4949
<hr class="sidebar"/>

tests/git-scm.spec.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,8 @@ test('book', async ({ page }) => {
236236
}
237237
await page.getByRole('link', { name: 'Français' }).click()
238238
await expect(page).toHaveURL(/book\/fr/)
239-
await expect(page.getByRole('link', { name: 'Démarrage rapide' })).toBeVisible()
239+
await expect(page.locator('.inner h1')).toHaveText(/Démarrage rapide/)
240+
await expect(page.getByRole('link', { name: 'Démarrage rapide' })).not.toBeVisible()
240241

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

0 commit comments

Comments
 (0)