@@ -46,6 +46,10 @@ class UpdateLicenseCode(object):
4646
4747 languages = {}
4848
49+ license_data = {}
50+
51+ license_types = []
52+
4953 iso_to_language = {
5054 "ar" : "العربية" ,
5155 "be" : "Беларуская" ,
@@ -58,7 +62,6 @@ class UpdateLicenseCode(object):
5862 "en" : "English" ,
5963 "eo" : "Esperanto" ,
6064 "es" : "Español" ,
61- "es_ES" : "Castellano (España)" ,
6265 "eu" : "euskara" ,
6366 "fa" : "پارسی" ,
6467 "fi" : "suomeksi" ,
@@ -102,7 +105,6 @@ class UpdateLicenseCode(object):
102105 "en" : "This page is available in the following languages:" ,
103106 "eo" : "Ĉi tiu paĝo estas disponebla en la jenaj lingvoj:" ,
104107 "es" : "Esta página está disponible en los siguientes idiomas:" ,
105- "es_ES" : "" ,
106108 "eu" : "Orri hau hizkuntza hauetan ikus daiteke:" ,
107109 "fa" : "این صفحه به زبان های زیر در دسترس است : " ,
108110 "fi" : "Tämä sivu on saatavilla seuraavilla kielillä:" ,
@@ -181,6 +183,23 @@ def get_path(self):
181183
182184 def process_files (self , filelist ):
183185 """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
184203 for filepath in filelist :
185204 self .process_file (filepath )
186205
@@ -232,50 +251,35 @@ def add_includes(self, content):
232251
233252 def add_language_selector (self , content , filepath ):
234253 """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 ]
251255 current_language = license_data ["language" ]
252256 sibling_languages = self .languages [license_data ["type" ]]
253257
254258 selector = (
255259 '<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>"
261265 )
262266 for iso_code in sibling_languages :
263267 # Set the selected option to the current language of the page
264268 selected = ""
265269 if iso_code == current_language :
266- selected = ' selected="selected" '
270+ selected = ' selected="selected"'
267271 # Determine to option value for the language. English breaks the
268272 # pattern so handle it differently.
269273 option_value = f"legalcode.{ iso_code } "
270274 if iso_code == "en" :
271275 option_value = "legalcode"
272276 # Add the selector vlaue
273277 selector = (
274- f'{ selector } <option value="{ option_value } "{ selected } >'
278+ f'{ selector } \n <option value="{ option_value } "{ selected } >'
275279 f"{ self .iso_to_language [iso_code ]} "
276280 "</option>"
277281 )
278- selector = f"{ selector } </select> </div></div>"
282+ selector = f"{ selector } \n </select>\n </div>\n </div>"
279283
280284 # Add the language selector block to the content
281285 start , end = UpdateLicenseCode .placeholders ["language-selector" ]
0 commit comments