feat: 增加中译西辅助、在线翻译、B1词库与三语语音对照
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>B1 核心词汇 — 西班牙语知识库</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<nav class="top-nav">
|
||||
<a class="back" href="../knowledge.html">← 知识库</a>
|
||||
<span class="home">📚 B1 核心词汇</span>
|
||||
</nav>
|
||||
|
||||
<h1>B1 核心词汇与表达</h1>
|
||||
<p class="page-subtitle">按主题整理的 B1 常用词汇,约 600 个核心词与表达。点击 🔊 听发音。</p>
|
||||
|
||||
<div id="b1-index" class="category-grid"></div>
|
||||
<div id="b1-content"></div>
|
||||
|
||||
<script src="../b1-vocab.js"></script>
|
||||
<script src="../speech.js"></script>
|
||||
<script>
|
||||
function escHtml(s) {
|
||||
var div = document.createElement('div');
|
||||
div.textContent = s;
|
||||
return div.innerHTML;
|
||||
}
|
||||
|
||||
function speakWord(es) {
|
||||
speakText(es, 'es');
|
||||
}
|
||||
|
||||
var groups = {};
|
||||
B1_VOCAB.forEach(function(item) {
|
||||
var cat = item[3];
|
||||
if (!groups[cat]) groups[cat] = [];
|
||||
groups[cat].push({ es: item[0], en: item[1], zh: item[2] });
|
||||
});
|
||||
|
||||
var order = Object.keys(groups);
|
||||
document.getElementById('b1-index').innerHTML = order.map(function(cat) {
|
||||
return '<a class="category-card" href="#cat-' + encodeURIComponent(cat) + '">' +
|
||||
'<h2>' + escHtml(cat) + '</h2>' +
|
||||
'<span class="count">' + groups[cat].length + ' 词</span>' +
|
||||
'</a>';
|
||||
}).join('');
|
||||
|
||||
document.getElementById('b1-content').innerHTML = order.map(function(cat) {
|
||||
var rows = groups[cat].map(function(w) {
|
||||
return '<tr>' +
|
||||
'<td class="vocab-word-cell">' + escHtml(w.es) + ' <button class="speak-btn" data-text="' + escHtml(w.es) + '">🔊</button></td>' +
|
||||
'<td>' + escHtml(w.en) + '</td>' +
|
||||
'<td>' + escHtml(w.zh) + '</td>' +
|
||||
'</tr>';
|
||||
}).join('');
|
||||
return '<div class="article" id="cat-' + encodeURIComponent(cat) + '">' +
|
||||
'<h2>' + escHtml(cat) + '</h2>' +
|
||||
'<table><thead><tr><th>Español</th><th>English</th><th>中文</th></tr></thead><tbody>' +
|
||||
rows + '</tbody></table></div>';
|
||||
}).join('');
|
||||
|
||||
document.addEventListener('click', function(e) {
|
||||
var btn = e.target.closest('.speak-btn');
|
||||
if (btn) speakText(btn.dataset.text, 'es');
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user