@@ -46,6 +46,10 @@ class UpdateLicenseCode(object):
46
46
47
47
languages = {}
48
48
49
+ license_data = {}
50
+
51
+ license_types = []
52
+
49
53
iso_to_language = {
50
54
"ar" : "العربية" ,
51
55
"be" : "Беларуская" ,
@@ -58,7 +62,6 @@ class UpdateLicenseCode(object):
58
62
"en" : "English" ,
59
63
"eo" : "Esperanto" ,
60
64
"es" : "Español" ,
61
- "es_ES" : "Castellano (España)" ,
62
65
"eu" : "euskara" ,
63
66
"fa" : "پارسی" ,
64
67
"fi" : "suomeksi" ,
@@ -102,7 +105,6 @@ class UpdateLicenseCode(object):
102
105
"en" : "This page is available in the following languages:" ,
103
106
"eo" : "Ĉi tiu paĝo estas disponebla en la jenaj lingvoj:" ,
104
107
"es" : "Esta página está disponible en los siguientes idiomas:" ,
105
- "es_ES" : "" ,
106
108
"eu" : "Orri hau hizkuntza hauetan ikus daiteke:" ,
107
109
"fa" : "این صفحه به زبان های زیر در دسترس است : " ,
108
110
"fi" : "Tämä sivu on saatavilla seuraavilla kielillä:" ,
@@ -181,6 +183,23 @@ def get_path(self):
181
183
182
184
def process_files (self , filelist ):
183
185
"""File processing loop"""
186
+ languages = {}
187
+ license_types = []
188
+ # pre-process
189
+ for filepath in filelist :
190
+ license_data = self .parse_filename (filepath )
191
+ type_ = license_data ["type" ]
192
+ license_types .append (type_ )
193
+ if type_ not in languages :
194
+ languages [type_ ] = []
195
+ languages [type_ ].append (license_data ["language" ])
196
+ self .license_data [filepath ] = license_data
197
+ # sort and store data
198
+ self .license_types = sorted (list (set (license_types )))
199
+ for type_ in self .license_types :
200
+ self .languages [type_ ] = []
201
+ self .languages [type_ ] = sorted (list (set (languages [type_ ])))
202
+ # process files
184
203
for filepath in filelist :
185
204
self .process_file (filepath )
186
205
@@ -232,50 +251,35 @@ def add_includes(self, content):
232
251
233
252
def add_language_selector (self , content , filepath ):
234
253
"""Build and insert a language selector dropdown list."""
235
- # Get a list of all the other languages for this license type and store
236
- # it so it can be reused.
237
- license_data = self .parse_filename (filepath )
238
- if license_data ["type" ] not in self .languages :
239
- self .languages [license_data ["type" ]] = []
240
- glob_string = (
241
- f"{ license_data ['type' ]} _{ license_data ['version' ]} *.html"
242
- )
243
- language_file_list = [f for f in self .path .glob (glob_string )]
244
- for filepath in language_file_list :
245
- sibling_data = self .parse_filename (filepath )
246
- self .languages [license_data ["type" ]].append (
247
- sibling_data ["language" ]
248
- )
249
- self .languages [license_data ["type" ]].sort ()
250
-
254
+ license_data = self .license_data [filepath ]
251
255
current_language = license_data ["language" ]
252
256
sibling_languages = self .languages [license_data ["type" ]]
253
257
254
258
selector = (
255
259
'<div id="language-selector-block" class="container">'
256
- ' <div class="language-selector-inner">'
257
- f"{ self .lang_sel_text [current_language ]} "
258
- ' <img class="language-icon"'
259
- ' src="/images/language_icon_x2.png" alt="Languages" / >'
260
- " <select>"
260
+ '\n <div class="language-selector-inner">'
261
+ f"\n { self .lang_sel_text [current_language ]} "
262
+ '\n <img class="language-icon"'
263
+ ' src="/images/language_icon_x2.png" alt="Languages">'
264
+ "\n <select>"
261
265
)
262
266
for iso_code in sibling_languages :
263
267
# Set the selected option to the current language of the page
264
268
selected = ""
265
269
if iso_code == current_language :
266
- selected = ' selected="selected" '
270
+ selected = ' selected="selected"'
267
271
# Determine to option value for the language. English breaks the
268
272
# pattern so handle it differently.
269
273
option_value = f"legalcode.{ iso_code } "
270
274
if iso_code == "en" :
271
275
option_value = "legalcode"
272
276
# Add the selector vlaue
273
277
selector = (
274
- f'{ selector } <option value="{ option_value } "{ selected } >'
278
+ f'{ selector } \n <option value="{ option_value } "{ selected } >'
275
279
f"{ self .iso_to_language [iso_code ]} "
276
280
"</option>"
277
281
)
278
- selector = f"{ selector } </select> </div></div>"
282
+ selector = f"{ selector } \n </select>\n </div>\n </div>"
279
283
280
284
# Add the language selector block to the content
281
285
start , end = UpdateLicenseCode .placeholders ["language-selector" ]
0 commit comments