1 2class Translator_Language_Helper { 3 4 onload() { 5 this._set_selected_languages(); 6 } 7 8 __get_selected_language() { 9 // Get Current Translation 10 const search = new URLSearchParams( location.search ); 11 if ( !search ) return false; 12 13 // Get Language from URL 14 const lang = search.get( "_x_tr_tl" ); 15 if ( !lang || lang == '' ) return false; 16 17 // Return Language 18 return lang; 19 } 20 21 __set_selected_language( lang, select ) { 22 if ( !lang ) return; 23 24 // Validate Language is Option 25 const find = Array.from( select.children ).find( ({ value }) => value == lang ); 26 if ( !find ) return; 27 28 // Set Language 29 select.value = lang; 30 } 31 32 _set_selected_languages() { 33 // Get Language 34 const lang = this.__get_selected_language(); 35 if ( !lang ) return; 36 37 // Get Language Options 38 const elements = Array.from( document.querySelectorAll( "[name='language_choice']" ) ); 39 if ( !elements || elements.length <= 0 ) return; 40 41 // Set Language 42 elements.forEach( el => this.__set_selected_language( lang, el ) ); 43 } 44 45 46 47 static select_language( lang ) { 48 // Get Data 49 const language = !lang || lang == '' ? document.getElementById("language_choice").value : lang; 50 console.log( 'Selected Language:', language ); 51 52 // Validate Input and Location 53 if ( !language || language == '' || language == 'false' ) return; 54 if ( language === window.location.href ) return; 55 if ( location.pathname.includes( 'wp-admin' ) ) return; 56 57 // Process URL 58 const base_url = location.origin.replace( '.translate.goog', '' ).replaceAll( '-', '.' ); 59 const url = base_url + location.pathname; 60 61 // Redirect to Translated Language version 62 if ( lang == 'en' ) window.location.href = url; 63 else window.location.href = `http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&u=${url}&sl=en&tl=${language}&history_state0=`; 64 } 65} 66 67const translator_language_helper = new Translator_Language_Helper(); 68 69window.addEventListener( 'load', _ => translator_language_helper.onload() ); 70 71 72 73
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.