「さ」與「み」:日語形容詞接尾詞辨析
さ 與 み 情境演練
const vocabData = [
{ id: 1, kanji: '重さ', kana: 'おもさ', meaning: '重量(客觀量化)', cat: 'sa', emoji: '⚖️' },
{ id: 2, kanji: '高さ', kana: 'たかさ', meaning: '高度(客觀量化)', cat: 'sa', emoji: ' ️' },
{ id: 3, kanji: '深さ', kana: 'ふかさ', meaning: '深度(物理深度)', cat: 'sa', emoji: ' ' },
{ id: 4, kanji: '面白さ', kana: 'おもしろさ', meaning: '有趣程度', cat: 'sa', emoji: ' ' },
{ id: 5, kanji: '深み', kana: 'ふかみ', meaning: '深度(抽象/深度)', cat: 'mi', emoji: '☕' },
{ id: 6, kanji: '痛み', kana: 'いたみ', meaning: '痛感(主觀感受)', cat: 'mi', emoji: ' ' },
{ id: 7, kanji: '弱み', kana: 'よわみ', meaning: '弱點', cat: 'mi', emoji: ' ' },
{ id: 8, kanji: '甘み', kana: 'あまみ', meaning: '甜味(風味層次)', cat: 'mi', emoji: ' ' }
];
const scenarios = {
weight: {
jp: "このテレビの重さはわずか五キロです。",
plain: "このテレビの重さはわずか五キロです。",
mean: "這個電視的重量僅有5公斤。",
note: "唸法建議:使用「さ」來表示可以用工具量測出的客觀數值。"
},
depth: {
jp: "社長は深みのある人です。",
plain: "社長は深みのある人です。",
mean: "社長是很有深度(有涵養)的人。",
note: "情境提示:「深み」常用於形容人的內涵或事物的韻味。"
},
pain: {
jp: "お腹は刺すような痛みがある。",
plain: "お腹は刺すような痛みがある。",
mean: "肚子有刺刺的疼痛感。",
note: "學習建議:痛覺是個人主觀感受,因此使用「み」。"
}
};
let currentFilter = 'all';
let currentPlain = "";
window.onload = () => {
renderVocab();
selectScenario('weight');
};
function renderVocab() {
const grid = document.getElementById('vocab-grid');
grid.innerHTML = '';
const list = currentFilter === 'all' ? vocabData : vocabData.filter(v => v.cat === currentFilter);
list.forEach(v => {
const card = document.createElement('div');
card.className = 'card-container';
card.onclick = function() { this.querySelector('.card-inner').classList.toggle('flipped'); };
card.innerHTML = `
`;
grid.appendChild(card);
});
}
function filterVocab(cat) {
currentFilter = cat;
document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
const activeBtn = document.querySelector(`.filter-btn[data-filter="${cat}"]`);
if (activeBtn) activeBtn.classList.add('active');
renderVocab();
}
function selectScenario(num) {
const data = scenarios[num];
const content = document.getElementById('scenario-content');
currentPlain = data.plain;
document.querySelectorAll('.scenario-btn').forEach(btn => btn.classList.remove('active'));
document.getElementById('btn-' + num).classList.add('active');
content.innerHTML = `
中文解釋
${data.mean}
`;
}
function copySentence() {
const el = document.createElement('textarea');
el.value = currentPlain;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
const toast = document.getElementById('toast');
toast.classList.add('show');
setTimeout(() => toast.classList.remove('show'), 2000);
}
const vocabData = [
{ id: 1, kanji: '重さ', kana: 'おもさ', meaning: '重量(客觀量化)', cat: 'sa', emoji: '⚖️' },
{ id: 2, kanji: '高さ', kana: 'たかさ', meaning: '高度(客觀量化)', cat: 'sa', emoji: ' ️' },
{ id: 3, kanji: '深さ', kana: 'ふかさ', meaning: '深度(物理深度)', cat: 'sa', emoji: ' ' },
{ id: 4, kanji: '面白さ', kana: 'おもしろさ', meaning: '有趣程度', cat: 'sa', emoji: ' ' },
{ id: 5, kanji: '深み', kana: 'ふかみ', meaning: '深度(抽象/深度)', cat: 'mi', emoji: '☕' },
{ id: 6, kanji: '痛み', kana: 'いたみ', meaning: '痛感(主觀感受)', cat: 'mi', emoji: ' ' },
{ id: 7, kanji: '弱み', kana: 'よわみ', meaning: '弱點', cat: 'mi', emoji: ' ' },
{ id: 8, kanji: '甘み', kana: 'あまみ', meaning: '甜味(風味層次)', cat: 'mi', emoji: ' ' }
];
const scenarios = {
weight: {
jp: "このテレビの重さはわずか五キロです。",
plain: "このテレビの重さはわずか五キロです。",
mean: "這個電視的重量僅有5公斤。",
note: "唸法建議:使用「さ」來表示可以用工具量測出的客觀數值。"
},
depth: {
jp: "社長は深みのある人です。",
plain: "社長は深みのある人です。",
mean: "社長是很有深度(有涵養)的人。",
note: "情境提示:「深み」常用於形容人的內涵或事物的韻味。"
},
pain: {
jp: "お腹は刺すような痛みがある。",
plain: "お腹は刺すような痛みがある。",
mean: "肚子有刺刺的疼痛感。",
note: "學習建議:痛覺是個人主觀感受,因此使用「み」。"
}
};
let currentFilter = 'all';
let currentPlain = "";
window.onload = () => {
renderVocab();
selectScenario('weight');
};
function renderVocab() {
const grid = document.getElementById('vocab-grid');
grid.innerHTML = '';
const list = currentFilter === 'all' ? vocabData : vocabData.filter(v => v.cat === currentFilter);
list.forEach(v => {
const card = document.createElement('div');
card.className = 'card-container';
card.onclick = function() { this.querySelector('.card-inner').classList.toggle('flipped'); };
card.innerHTML = `