Skip to content

Commit ab9cfdf

Browse files
refactor: language handling in versions.html
In addition to streamlining the implementation, makes it possible to alphabetize by language display name rather than language code. Signed-off-by: Josh <josh.t.richards@gmail.com>
1 parent 49456fb commit ab9cfdf

File tree

1 file changed

+74
-179
lines changed

1 file changed

+74
-179
lines changed

user_manual/_templates/versions.html

Lines changed: 74 additions & 179 deletions
Original file line numberDiff line numberDiff line change
@@ -1,187 +1,82 @@
11
{% if READTHEDOCS %}
2-
{# Add rst-badge after rst-versions for small badge style. #}
2+
{# Add rst-badge after rst-versions for small badge style. #}
33
<!-- Here go the languages -->
4-
{% set available_languages = available_languages|sort %}
4+
5+
{# Language code to name mapping #}
6+
{% set language_names = {
7+
'af': 'Afrikaans',
8+
'ar': 'Arabic',
9+
'br': 'Breton',
10+
'ca': 'Catalan',
11+
'cs': 'Czech',
12+
'da': 'Danish',
13+
'de': 'German',
14+
'el': 'Greek',
15+
'eo': 'Esperanto',
16+
'es': 'Spanish',
17+
'en': 'English',
18+
'fi_FI': 'Finnish',
19+
'fr': 'French',
20+
'hr': 'Croatian',
21+
'hu_HU': 'Hungarian',
22+
'ga': 'Irish',
23+
'gl': 'Galician',
24+
'id': 'Indonesian',
25+
'it': 'Italian',
26+
'ja_JP': 'Japanese',
27+
'ko': 'Korean',
28+
'mn': 'Mongolian',
29+
'nb_NO': 'Norwegian (NB)',
30+
'nl': 'Dutch',
31+
'nn': 'Norwegian (NN)',
32+
'pl': 'Polish',
33+
'pt_PT': 'Portuguese',
34+
'pt_BR': 'Portuguese (BR)',
35+
'ro': 'Romanian',
36+
'ru': 'Russian',
37+
'si': 'Sinhala',
38+
'sk_SK': 'Slovakian',
39+
'sq': 'Albanian',
40+
'sr': 'Slovenian',
41+
'sv': 'Swedish',
42+
'ta': 'Tamil',
43+
'tr': 'Turkish',
44+
'uk': 'Ukrainian',
45+
'uz': 'Uzbek',
46+
'vi': 'Vietnamese',
47+
'zh_CN': 'Chinese',
48+
'zh_HK': 'Chinese (HK)',
49+
'zh_TW': 'Chinese (TW)'
50+
} %}
51+
52+
{# Build list of {code, name} pairs for available languages #}
53+
{% set language_tuples = [] %}
54+
{% for code in available_languages %}
55+
{% set _ = language_tuples.append({'code': code, 'name': language_names.get(code, code)}) %}
56+
{% endfor %}
57+
{% set sorted_languages = language_tuples | sort(attribute='name') %}
58+
559
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
660
<span class="rst-current-version" data-toggle="rst-current-version">
7-
🌐
8-
{% set language_code = language %}
9-
{% if language_code == 'cs' %}
10-
Czech
11-
{% elif language_code == 'da' %}
12-
Danish
13-
{% elif language_code == 'de' %}
14-
German
15-
{% elif language_code == 'el' %}
16-
Greek
17-
{% elif language_code == 'es' %}
18-
Spanish
19-
{% elif language_code == 'en' %}
20-
English
21-
{% elif language_code == 'fi_FI' %}
22-
Finnish
23-
{% elif language_code == 'fr' %}
24-
French
25-
{% elif language_code == 'hr' %}
26-
Croatian
27-
{% elif language_code == 'hu_HU' %}
28-
Hungarian
29-
{% elif language_code == 'id' %}
30-
Indonesian
31-
{% elif language_code == 'it' %}
32-
Italian
33-
{% elif language_code == 'ja_JP' %}
34-
Japanese
35-
{% elif language_code == 'ko' %}
36-
Korean
37-
{% elif language_code == 'mn' %}
38-
Mongolian
39-
{% elif language_code == 'nb_NO' %}
40-
Norwegian
41-
{% elif language_code == 'nl' %}
42-
Dutch
43-
{% elif language_code == 'pl' %}
44-
Polish
45-
{% elif language_code == 'pt_PT' %}
46-
Portuguese
47-
{% elif language_code == 'pt_BR' %}
48-
Portuguese (BR)
49-
{% elif language_code == 'ro' %}
50-
Romanian
51-
{% elif language_code == 'ru' %}
52-
Russian
53-
{% elif language_code == 'sk_SK' %}
54-
Slovakian
55-
{% elif language_code == 'sq' %}
56-
Albanian
57-
{% elif language_code == 'sr' %}
58-
Slovenian
59-
{% elif language_code == 'sv' %}
60-
Swedish
61-
{% elif language_code == 'tr' %}
62-
Turkish
63-
{% elif language_code == 'uk' %}
64-
Ukrainian
65-
{% elif language_code == 'uz' %}
66-
Uzbek
67-
{% elif language_code == 'vi' %}
68-
Vietnamese
69-
{% elif language_code == 'zh_CN' %}
70-
Chinese
71-
{% elif language_code == 'zh_HK' %}
72-
Chinese (HK)
73-
{% elif language_code == 'zh_TW' %}
74-
Chinese (TW)
75-
{% else %}
76-
{{ language_code }}
77-
{% endif %}
61+
🌐 {{ language_names.get(language, language) }}
7862
<span class="fa fa-caret-down"></span>
79-
8063
 ☁️ {{ current_version }}
8164
<span class="fa fa-caret-down"></span>
8265
</span>
8366
<div class="rst-other-versions">
8467
<dl>
8568
<dt>🌐 {{ _('Languages') }}</dt>
86-
{% for language_code in available_languages %}
87-
<dd style="width: 32%; vertical-align: top;">
88-
<a href="/server/latest/user_manual/{{ language_code }}/"
89-
{% if language_code == language %}
90-
style="color: var(--dark-link-color);"
91-
{% endif %}
92-
>
93-
{% if language_code == 'af' %}
94-
Afrikaans
95-
{% elif language_code == 'ar' %}
96-
Arabic
97-
{% elif language_code == 'br' %}
98-
Breton
99-
{% elif language_code == 'ca' %}
100-
Catalan
101-
{% elif language_code == 'cs' %}
102-
Czech
103-
{% elif language_code == 'da' %}
104-
Danish
105-
{% elif language_code == 'de' %}
106-
German
107-
{% elif language_code == 'el' %}
108-
Greek
109-
{% elif language_code == 'eo' %}
110-
Esperanto
111-
{% elif language_code == 'es' %}
112-
Spanish
113-
{% elif language_code == 'en' %}
114-
English
115-
{% elif language_code == 'fi_FI' %}
116-
Finnish
117-
{% elif language_code == 'fr' %}
118-
French
119-
{% elif language_code == 'hr' %}
120-
Croatian
121-
{% elif language_code == 'hu_HU' %}
122-
Hungarian
123-
{% elif language_code == 'ga' %}
124-
Irish
125-
{% elif language_code == 'gl' %}
126-
Galician
127-
{% elif language_code == 'id' %}
128-
Indonesian
129-
{% elif language_code == 'it' %}
130-
Italian
131-
{% elif language_code == 'ja_JP' %}
132-
Japanese
133-
{% elif language_code == 'ko' %}
134-
Korean
135-
{% elif language_code == 'mn' %}
136-
Mongolian
137-
{% elif language_code == 'nb_NO' %}
138-
Norwegian (NB)
139-
{% elif language_code == 'nl' %}
140-
Dutch
141-
{% elif language_code == 'nn' %}
142-
Norwegian (NN)
143-
{% elif language_code == 'pl' %}
144-
Polish
145-
{% elif language_code == 'pt_PT' %}
146-
Portuguese
147-
{% elif language_code == 'pt_BR' %}
148-
Portuguese (BR)
149-
{% elif language_code == 'ro' %}
150-
Romanian
151-
{% elif language_code == 'ru' %}
152-
Russian
153-
{% elif language_code == 'si' %}
154-
Sinhala
155-
{% elif language_code == 'sk_SK' %}
156-
Slovakian
157-
{% elif language_code == 'sq' %}
158-
Albanian
159-
{% elif language_code == 'sr' %}
160-
Slovenian
161-
{% elif language_code == 'sv' %}
162-
Swedish
163-
{% elif language_code == 'ta' %}
164-
Tamil
165-
{% elif language_code == 'tr' %}
166-
Turkish
167-
{% elif language_code == 'uk' %}
168-
Ukrainian
169-
{% elif language_code == 'uz' %}
170-
Uzbek
171-
{% elif language_code == 'vi' %}
172-
Vietnamese
173-
{% elif language_code == 'zh_CN' %}
174-
Chinese
175-
{% elif language_code == 'zh_HK' %}
176-
Chinese (HK)
177-
{% elif language_code == 'zh_TW' %}
178-
Chinese (TW)
179-
{% else %}
180-
{{ language_code }}
181-
{% endif %}
182-
</a>
183-
</dd>
184-
{% endfor %}
69+
{% for lang in sorted_languages %}
70+
<dd style="width: 32%; vertical-align: top;">
71+
<a href="/server/latest/user_manual/{{ lang.code }}/"
72+
{% if lang.code == language %}
73+
style="color: var(--dark-link-color);"
74+
{% endif %}
75+
>
76+
{{ lang.name }}
77+
</a>
78+
</dd>
79+
{% endfor %}
18580
</dl>
18681
</div>
18782
<div class="rst-other-versions">
@@ -208,12 +103,12 @@
208103
<dl>
209104
{# Translators: The phrase "Read the Docs" is not translated #}
210105
<dt>{{ _('On Read the Docs') }}</dt>
211-
<dd>
212-
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
213-
</dd>
214-
<dd>
215-
<a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
216-
</dd>
106+
<dd>
107+
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
108+
</dd>
109+
<dd>
110+
<a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
111+
</dd>
217112
</dl>
218113
</div>
219114
</div>

0 commit comments

Comments
 (0)