blob: 830575a1eef3e2a8a2ea587d2b1f1db9e3520eae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
{% if include.translate_langs %}
{% assign translate_langs = include.translate_langs %}
{% endif %}
{% if include.lang %}
{% assign lang = include.lang %}
{% endif %}
<div id="google_translate_element" style="display: none;">
</div>
<span class="ct-language">
<ul class="list-unstyled ct-language-dropdown">
{% for item in translate_langs %}
<li>
<a href="#" class="lang-select" data-lang="{{ item.lang }}">
{% if item.img %}
<img src="{{ item.img }}" title="{{ item.text }}">
{% else %}
{{ item.text }}
{% endif %}
</a>
</li>
{% endfor %}
</ul>
</span>
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: '{{ lang }}',
autoDisplay: false,
layout: google.translate.TranslateElement.InlineLayout.VERTICAL
}, 'google_translate_element');
// Links to cross-origin destinations are unsafe
var gll = document.getElementsByClassName('goog-logo-link')[0];
if (gll) {
gll.setAttribute('rel', 'noopener');
}
function restoreLang() {
var iframe = document.getElementsByClassName('goog-te-banner-frame')[0];
if (!iframe) return;
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var restore_el = innerDoc.getElementsByTagName("button");
for (var i = 0; i < restore_el.length; i++) {
if (restore_el[i].id.indexOf("restore") >= 0) {
restore_el[i].click();
var close_el = innerDoc.getElementsByClassName("goog-close-link");
close_el[0].click();
return;
}
}
}
function triggerHtmlEvent(element, eventName) {
var event;
if (document.createEvent) {
event = document.createEvent('HTMLEvents');
event.initEvent(eventName, true, true);
element.dispatchEvent(event);
} else {
event = document.createEventObject();
event.eventType = eventName;
element.fireEvent('on' + event.eventType, event);
}
}
var googleCombo = document.querySelector("select.goog-te-combo");
var langSelect = document.querySelector('.ct-language');
langSelect.addEventListener('click', function(event) {
if (!event.target) {
return;
}
var selected = document.querySelector('.ct-language .ct-language-selected');
if (selected) {
selected.classList.remove('ct-language-selected');
}
var target = event.target;
while (target && target !== langSelect ) {
if (target.matches('.lang-select')) {
break;
}
target = target.parentElement;
}
if (target && target.matches('.lang-select')) {
var lang = target.getAttribute('data-lang');
if (googleCombo.value == lang) {
restoreLang();
} else {
target.parentElement.classList.add('ct-language-selected');
googleCombo.value = lang;
triggerHtmlEvent(googleCombo, 'change');
}
}
event.preventDefault();
});
}
</script>
<script type="text/javascript" src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit" async></script>
|