Repository navigation
Expand file tree
/
Copy pathdebug-language.html
More file actions
131 lines (118 loc) · 3.87 KB
/
Copy pathdebug-language.html
File metadata and controls
131 lines (118 loc) · 3.87 KB
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Language Adapter Debug</title>
<style>
body {
font-family: monospace;
max-width: 800px;
margin: 50px auto;
padding: 20px;
background: #f5f5f5;
}
.debug-box {
background: white;
border: 2px solid #333;
padding: 20px;
margin: 10px 0;
border-radius: 4px;
}
.label {
font-weight: bold;
color: #333;
}
.value {
color: #007acc;
margin: 5px 0;
}
button {
padding: 10px 20px;
margin: 5px;
background: #007acc;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
button:hover {
background: #005a9e;
}
</style>
</head>
<body>
<h1>🔍 Language Adapter Debug</h1>
<div class="debug-box">
<p class="label">Browser Language Settings:</p>
<p class="value">navigator.language: <span id="nav-lang"></span></p>
<p class="value">navigator.languages: <span id="nav-langs"></span></p>
</div>
<div class="debug-box">
<p class="label">Script Detection:</p>
<p class="value">Detected Language: <span id="detected-lang">checking...</span></p>
<p class="value">Document Lang Attribute: <span id="doc-lang">-</span></p>
</div>
<div class="debug-box">
<p class="label">Google Translate Cookies:</p>
<p class="value">googtrans cookie: <span id="cookie-value">none</span></p>
<p class="value">localStorage override: <span id="local-override">none</span></p>
</div>
<div class="debug-box">
<p class="label">Google Translate Widget:</p>
<p class="value">Widget found: <span id="widget-found">checking...</span></p>
<p class="value">Widget value: <span id="widget-value">-</span></p>
</div>
<div class="debug-box">
<button onclick="testLanguage('es')">Test Spanish (?lang=es)</button>
<button onclick="testLanguage('zh')">Test Chinese (?lang=zh)</button>
<button onclick="testLanguage('ja')">Test Japanese (?lang=ja)</button>
<button onclick="clearAllAndReload()">Clear All & Reload</button>
</div>
<script>
function getCookieValue(name) {
var prefix = name + '=';
var parts = document.cookie ? document.cookie.split(';') : [];
for (var i = 0; i < parts.length; i += 1) {
var part = parts[i].trim();
if (part.indexOf(prefix) === 0) {
return part.substring(prefix.length);
}
}
return '';
}
function updateDebugInfo() {
document.getElementById('nav-lang').innerText = navigator.language || 'undefined';
document.getElementById('nav-langs').innerText = (navigator.languages || []).join(', ') || 'undefined';
document.getElementById('doc-lang').innerText = document.documentElement.lang || '(not set)';
document.getElementById('cookie-value').innerText = getCookieValue('googtrans') || '(not set)';
try {
var override = localStorage.getItem('site_lang_override');
document.getElementById('local-override').innerText = override || '(not set)';
} catch (e) {
document.getElementById('local-override').innerText = '(error: ' + e.message + ')';
}
var widget = document.querySelector('.goog-te-combo');
if (widget) {
document.getElementById('widget-found').innerText = '✅ YES';
document.getElementById('widget-value').innerText = widget.value || '(empty)';
} else {
document.getElementById('widget-found').innerText = '❌ Not found';
}
}
function testLanguage(lang) {
window.location.href = window.location.pathname + '?lang=' + lang;
}
function clearAllAndReload() {
document.cookie = 'googtrans=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';
localStorage.removeItem('site_lang_override');
sessionStorage.removeItem('auto_lang_reload_done');
window.location.href = window.location.pathname;
}
// Update immediately
updateDebugInfo();
// Update every 2 seconds
setInterval(updateDebugInfo, 2000);
</script>
</body>
</html>