{"id":13005,"date":"2025-08-08T00:23:51","date_gmt":"2025-08-07T16:23:51","guid":{"rendered":"https:\/\/tiffanysmandarin.com\/?p=13005"},"modified":"2026-09-08T16:45:44","modified_gmt":"2026-09-08T08:45:44","slug":"contemporary-chinese-vocabulary-practice-b1l15","status":"publish","type":"post","link":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/","title":{"rendered":"B1 L15 Vocabulary and Practice"},"content":{"rendered":"\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--\n  \u7576\u4ee3\u4e2d\u6587 Lesson 15 \u300c\u6211\u5f88\u4e0d\u8212\u670d\u300d I Don't Feel Well \u2014 Vocabulary Embed\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  Same technical pattern as the earlier lesson embeds (L1\u2013L6). This is a\n  new lesson (15) from later in the series \u2014 no dialogue pages were\n  provided, only \u751f\u8a5e\u4e00 \/ \u751f\u8a5e\u4e8c (Vocabulary I & II) including the\n  Phrases sections, transcribed word-for-word from the textbook with the\n  part-of-speech tags shown in the book.\n\n  Since no textbook dialogue was supplied for this lesson, the practice\n  dialogue in section 03 is an ORIGINAL conversation (two new characters,\n  \u7f8e\u73b2 and \u5927\u885b) built from this lesson's vocabulary plus ordinary\n  everyday connector words, so nothing here is copied from the textbook.\n\n  CSS scoped under .dangdai-l15-vocab-embed with its own --db15-*\n  variables. Root lookup by id (#dangdai-l15-vocab-embed-1), not\n  currentScript. No literal `&&` inside <script> (WordPress mangles it)\n  \u2014 nested `if` blocks used instead in Match It. Speaker buttons use the\n  Web Speech API via event delegation.\n-->\n<div class=\"dangdai-l15-vocab-embed\" id=\"dangdai-l15-vocab-embed-1\">\n<style>\n.dangdai-l15-vocab-embed {\n  --db15-oxblood: #7b2d26;\n  --db15-oxblood-dark: #5e211c;\n  --db15-mustard: #c9922b;\n  --db15-sage: #7c8b6f;\n  --db15-bone: #f7f1e6;\n  --db15-ink: #2c2620;\n  --db15-line: #e4d9c4;\n  font-family: 'Work Sans', -apple-system, sans-serif;\n  color: var(--db15-ink);\n  background: #fff;\n  max-width: 760px;\n  margin: 0 auto;\n  padding: 8px 4px 24px;\n  line-height: 1.6;\n}\n.dangdai-l15-vocab-embed * { box-sizing: border-box; }\n.dangdai-l15-vocab-embed h1,\n.dangdai-l15-vocab-embed h2,\n.dangdai-l15-vocab-embed h3 {\n  font-family: 'Bitter', Georgia, serif;\n  color: var(--db15-oxblood-dark);\n  margin: 0 0 8px;\n}\n.dangdai-l15-vocab-embed .db15-support-note {\n  font-size: 0.85rem;\n  color: var(--db15-sage);\n  border-bottom: 1px solid var(--db15-line);\n  padding-bottom: 12px;\n  margin: 0 0 16px;\n}\n.dangdai-l15-vocab-embed .db15-lede {\n  margin: 0 0 24px;\n  padding: 14px 16px;\n  background: var(--db15-bone);\n  border-left: 4px solid var(--db15-mustard);\n  border-radius: 4px;\n  font-size: 0.98rem;\n}\n.dangdai-l15-vocab-embed .db15-lede b { color: var(--db15-oxblood-dark); }\n.dangdai-l15-vocab-embed .db15-sec-eyebrow {\n  display: inline-block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  letter-spacing: 0.08em;\n  color: #fff;\n  background: var(--db15-oxblood);\n  padding: 3px 9px;\n  border-radius: 3px;\n  margin: 32px 0 10px;\n}\n.dangdai-l15-vocab-embed .db15-word-card {\n  border: 1px solid var(--db15-line);\n  border-radius: 8px;\n  padding: 12px 14px;\n  margin-bottom: 10px;\n  background: #fff;\n}\n.dangdai-l15-vocab-embed .db15-word-top {\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  flex-wrap: wrap;\n}\n.dangdai-l15-vocab-embed .db15-num {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  color: var(--db15-mustard);\n  min-width: 22px;\n}\n.dangdai-l15-vocab-embed .db15-hanzi { font-size: 1.35rem; font-weight: 600; }\n.dangdai-l15-vocab-embed .db15-pos {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: #fff;\n  background: var(--db15-sage);\n  padding: 2px 7px;\n  border-radius: 10px;\n}\n.dangdai-l15-vocab-embed ruby {\n  ruby-position: over;\n  margin-right: 2px;\n  color: var(--db15-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-l15-vocab-embed .rb {\n  color: var(--db15-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-l15-vocab-embed rt {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.6rem !important;\n  color: var(--db15-sage) !important;\n  font-weight: 400;\n}\n.dangdai-l15-vocab-embed .db15-meaning { font-style: italic; color: #6b5f52; font-size: 0.92rem; }\n.dangdai-l15-vocab-embed .db15-speaker {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex: 0 0 26px;\n  width: 26px;\n  height: 26px;\n  padding: 0;\n  border: none;\n  background: var(--db15-bone);\n  color: var(--db15-oxblood);\n  border-radius: 50%;\n  cursor: pointer;\n  margin-left: auto;\n}\n.dangdai-l15-vocab-embed .db15-speaker:hover { background: var(--db15-mustard); color: #fff; }\n.dangdai-l15-vocab-embed .db15-example {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px dashed var(--db15-line);\n  font-size: 0.95rem;\n}\n.dangdai-l15-vocab-embed .db15-example .db15-sent-word { display: inline-flex; }\n.dangdai-l15-vocab-embed .db15-example .db15-punct { margin-right: 2px; }\n.dangdai-l15-vocab-embed .db15-example .db15-en {\n  display: block;\n  color: #6b5f52;\n  font-size: 0.85rem;\n  margin-top: 4px;\n}\n.dangdai-l15-vocab-embed .db15-dialogue-note { font-size: 0.85rem; color: #6b5f52; margin: 0 0 10px; }\n.dangdai-l15-vocab-embed .db15-dialogue {\n  background: var(--db15-bone);\n  border-radius: 8px;\n  padding: 16px 18px;\n  margin-top: 8px;\n}\n.dangdai-l15-vocab-embed .db15-line {\n  display: flex;\n  gap: 8px;\n  margin-bottom: 12px;\n  align-items: flex-start;\n  flex-wrap: wrap;\n}\n.dangdai-l15-vocab-embed .db15-speaker-tag {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.72rem;\n  color: var(--db15-oxblood);\n  min-width: 46px;\n  padding-top: 3px;\n}\n.dangdai-l15-vocab-embed .db15-line-body { flex: 1; min-width: 200px; }\n.dangdai-l15-vocab-embed .db15-line-en { display: block; color: #6b5f52; font-size: 0.82rem; margin-top: 2px; }\n\n.dangdai-l15-vocab-embed .db15-fc-hint { font-size: 0.85rem; color: #6b5f52; margin: 0 0 12px; text-align: center; }\n.dangdai-l15-vocab-embed .db15-flashcard-wrap { max-width: 320px; margin: 0 auto 14px; perspective: 1200px; }\n.dangdai-l15-vocab-embed .db15-flashcard {\n  position: relative;\n  width: 100%;\n  height: 230px;\n  cursor: pointer;\n  transform-style: preserve-3d;\n  transition: transform 0.5s;\n}\n.dangdai-l15-vocab-embed .db15-flashcard.db15-flipped { transform: rotateY(180deg); }\n.dangdai-l15-vocab-embed .db15-fc-face {\n  position: absolute;\n  inset: 0;\n  backface-visibility: hidden;\n  border: 1px solid var(--db15-line);\n  border-radius: 12px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 16px;\n  background: #fff;\n  text-align: center;\n}\n.dangdai-l15-vocab-embed .db15-fc-back { transform: rotateY(180deg); background: var(--db15-bone); }\n.dangdai-l15-vocab-embed .db15-fc-front .db15-hanzi { font-size: 4rem !important; }\n.dangdai-l15-vocab-embed .db15-flashcard-wrap rt { font-size: 1.2rem !important; }\n.dangdai-l15-vocab-embed .db15-fc-back .db15-meaning { font-style: italic; color: var(--db15-oxblood-dark); font-size: 1.725rem; }\n.dangdai-l15-vocab-embed .db15-fc-back .db15-pos { margin-top: 8px; }\n.dangdai-l15-vocab-embed .db15-flashcard-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 28px; }\n.dangdai-l15-vocab-embed .db15-game-btn {\n  font-family: 'Work Sans', sans-serif;\n  font-size: 0.85rem;\n  border: 1px solid var(--db15-oxblood);\n  color: var(--db15-oxblood);\n  background: #fff;\n  padding: 6px 14px;\n  border-radius: 20px;\n  cursor: pointer;\n}\n.dangdai-l15-vocab-embed .db15-game-btn:hover { background: var(--db15-oxblood); color: #fff; }\n.dangdai-l15-vocab-embed .db15-game-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }\n.dangdai-l15-vocab-embed .db15-game-status { font-family: 'IBM Plex Mono', monospace; font-size: 0.82rem; color: var(--db15-sage); }\n.dangdai-l15-vocab-embed .db15-game-board { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n.dangdai-l15-vocab-embed .db15-game-col { display: flex; flex-direction: column; gap: 8px; }\n.dangdai-l15-vocab-embed .db15-tile {\n  font-family: 'Work Sans', sans-serif;\n  text-align: left;\n  border: 1px solid var(--db15-line);\n  background: #fff;\n  border-radius: 6px;\n  padding: 10px 12px;\n  cursor: pointer;\n  font-size: 0.95rem;\n  color: var(--db15-ink);\n  transition: background 0.15s, border-color 0.15s, transform 0.1s;\n}\n.dangdai-l15-vocab-embed .db15-tile .db15-tile-py {\n  display: block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: var(--db15-sage);\n  margin-top: 2px;\n}\n.dangdai-l15-vocab-embed .db15-tile:hover:not(.db15-matched):not(.db15-selected) { border-color: var(--db15-mustard); }\n.dangdai-l15-vocab-embed .db15-tile.db15-selected { border-color: var(--db15-oxblood); background: var(--db15-bone); }\n.dangdai-l15-vocab-embed .db15-tile.db15-matched { border-color: var(--db15-sage); background: #eef2e9; color: var(--db15-sage); cursor: default; }\n.dangdai-l15-vocab-embed .db15-tile.db15-wrong { border-color: #b5453d; background: #fbeceb; animation: db15-shake 0.3s; }\n@keyframes db15-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }\n.dangdai-l15-vocab-embed .db15-game-win { text-align: center; padding: 14px; font-family: 'Bitter', serif; color: var(--db15-oxblood-dark); display: none; }\n.dangdai-l15-vocab-embed .db15-game-win.db15-show { display: block; }\n@media (max-width: 480px) { .dangdai-l15-vocab-embed .db15-game-board { grid-template-columns: 1fr; } }\n.dangdai-l15-vocab-embed .db15-quiz { background: #fff; border: 1px solid var(--db15-line); border-radius: 12px; padding: 20px 22px; margin-top: 8px; }\n.dangdai-l15-vocab-embed .db15-quiz-progress { font-size: 0.82rem; color: var(--db15-sage); margin: 0 0 10px; font-family: 'IBM Plex Mono', monospace; }\n.dangdai-l15-vocab-embed .db15-quiz-prompt { font-size: 1.1rem; margin: 0 0 14px; }\n.dangdai-l15-vocab-embed .db15-quiz-options { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; }\n.dangdai-l15-vocab-embed .db15-quiz-opt { text-align: left; border: 1px solid var(--db15-line); background: var(--db15-bone); border-radius: 8px; padding: 10px 14px; cursor: pointer; font-size: 0.98rem; color: var(--db15-ink); }\n.dangdai-l15-vocab-embed .db15-quiz-opt:hover { background: #f0e6d2; }\n.dangdai-l15-vocab-embed .db15-quiz-opt.correct { background: #e3efdd; border-color: #7fae6d; color: #3d5c34; }\n.dangdai-l15-vocab-embed .db15-quiz-opt.incorrect { background: #f5e0dc; border-color: var(--db15-oxblood); color: var(--db15-oxblood-dark); }\n.dangdai-l15-vocab-embed .db15-quiz-opt[disabled] { cursor: default; }\n.dangdai-l15-vocab-embed .db15-quiz-input-row { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }\n.dangdai-l15-vocab-embed .db15-quiz-input { flex: 1 1 200px; border: 1px solid var(--db15-line); border-radius: 8px; padding: 9px 12px; font-size: 0.98rem; }\n.dangdai-l15-vocab-embed .db15-quiz-submit, .dangdai-l15-vocab-embed .db15-quiz-next, .dangdai-l15-vocab-embed .db15-quiz-retake { border: none; background: var(--db15-oxblood); color: #fff; border-radius: 20px; padding: 8px 18px; font-size: 0.9rem; cursor: pointer; }\n.dangdai-l15-vocab-embed .db15-quiz-submit:hover, .dangdai-l15-vocab-embed .db15-quiz-next:hover, .dangdai-l15-vocab-embed .db15-quiz-retake:hover { background: var(--db15-oxblood-dark); }\n.dangdai-l15-vocab-embed .db15-quiz-feedback { font-size: 0.95rem; margin: 0 0 10px; min-height: 1.4em; }\n.dangdai-l15-vocab-embed .db15-quiz-feedback.correct { color: #3d5c34; }\n.dangdai-l15-vocab-embed .db15-quiz-feedback.incorrect { color: var(--db15-oxblood-dark); }\n.dangdai-l15-vocab-embed .db15-quiz-score { text-align: center; }\n.dangdai-l15-vocab-embed .db15-quiz-score .db15-quiz-score-num { font-size: 2.2rem; font-weight: 700; color: var(--db15-oxblood-dark); display: block; margin-bottom: 8px; font-family: 'Bitter', serif; }\n<\/style>\n\n<p class=\"db15-support-note\"><em>A note before you start: I&#8217;d love for you to support the official textbook \u2014 this page is only meant as a review tool for people who already own a copy, not a replacement for it.<\/em><\/p>\n\n<p class=\"db15-lede\">\n<b><span class=\"lang-zh-TW\">\u7576\u4ee3\u4e2d\u6587\u8ab2\u7a0b<\/span><span class=\"lang-zh-CN\">\u5f53\u4ee3\u4e2d\u6587\u8bfe\u7a0b<\/span> Lesson 15\u300c<span class=\"lang-zh-TW\">\u6211\u5f88\u4e0d\u8212\u670d<\/span><span class=\"lang-zh-CN\">\u6211\u5f88\u4e0d\u8212\u670d<\/span>\u300dI Don&#8217;t Feel Well<\/b> \u2014 every word from \u751f\u8a5e\u4e00 and \u751f\u8a5e\u4e8c (Vocabulary I &amp; II), transcribed from the textbook, with pinyin, part of speech, meaning, and an original example sentence for every word, segmented word by word.\n<\/p>\n\n<div class=\"db15-sec-eyebrow\">01 \u2014 VOCABULARY I \u751f\u8a5e\u4e00<\/div>\n<div id=\"db15-word-list-1\"><\/div>\n\n<div class=\"db15-sec-eyebrow\">02 \u2014 VOCABULARY II \u751f\u8a5e\u4e8c<\/div>\n<div id=\"db15-word-list-2\"><\/div>\n\n<div class=\"db15-sec-eyebrow\">03 \u2014 PUT IT TOGETHER \u5c0d\u8a71\u7df4\u7fd2<\/div>\n<p class=\"db15-dialogue-note\"><em>Note: no textbook dialogue pages were provided for this lesson, and in any case the textbook&#8217;s own dialogue text is copyrighted, so I wrote a short original conversation below (between two new characters, \u7f8e\u73b2 and \u5927\u885b) using this lesson&#8217;s vocabulary so you can see the words used together. For the real Lesson 15 dialogue, please use your own copy of the textbook.<\/em><\/p>\n<div class=\"db15-dialogue\" id=\"db15-dialogue\"><\/div>\n\n<div class=\"db15-sec-eyebrow\">04 \u2014 FLASHCARDS<\/div>\n<p class=\"db15-fc-hint\">Tap the card to flip it, then use the arrows to move through the deck.<\/p>\n<div class=\"db15-flashcard-wrap\">\n  <div class=\"db15-flashcard\" id=\"db15-flashcard\">\n    <div class=\"db15-fc-face db15-fc-front\" id=\"db15-fc-front\"><\/div>\n    <div class=\"db15-fc-face db15-fc-back\" id=\"db15-fc-back\"><\/div>\n  <\/div>\n<\/div>\n<div class=\"db15-flashcard-controls\">\n  <button class=\"db15-game-btn\" id=\"db15-fc-prev\">\u2039 Prev<\/button>\n  <span class=\"db15-game-status\" id=\"db15-fc-progress\">1 \/ 43<\/span>\n  <button class=\"db15-game-btn\" id=\"db15-fc-next\">Next \u203a<\/button>\n<\/div>\n\n<div class=\"db15-sec-eyebrow\">05 \u2014 MATCH IT<\/div>\n<p style=\"font-size:0.9rem;color:#6b5f52;margin:0 0 10px;\">Tap a Chinese word, then tap the English meaning that matches it. Get all 8 pairs to finish the round.<\/p>\n<div class=\"db15-game-bar\">\n  <button class=\"db15-game-btn\" id=\"db15-game-new\">New Round<\/button>\n  <span class=\"db15-game-status\" id=\"db15-game-status\">0 \/ 8 matched<\/span>\n<\/div>\n<div class=\"db15-game-board\">\n  <div class=\"db15-game-col\" id=\"db15-game-col-zh\"><\/div>\n  <div class=\"db15-game-col\" id=\"db15-game-col-en\"><\/div>\n<\/div>\n<div class=\"db15-game-win\" id=\"db15-game-win\">\ud83c\udf89 All matched! Nice work.<\/div>\n\n<div class=\"db15-sec-eyebrow\">06 \u2014 VOCABULARY QUIZ<\/div>\n<p style=\"font-size:0.9rem;color:#6b5f52;margin:0 0 10px;\">15 questions covering this lesson&#8217;s vocabulary \u2014 a mix of multiple choice and type-the-answer.<\/p>\n<div class=\"db15-quiz\" id=\"db15-quiz\"><\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('dangdai-l15-vocab-embed-1');\n  if (!root) return;\n\n  var SPEAKER_SVG = '<svg viewBox=\"0 0 24 24\" width=\"12\" height=\"12\" fill=\"currentColor\" aria-hidden=\"true\">' +\n    '<path d=\"M7 4.5v15l13-7.5z\"><\/path>' +\n    '<\/svg>';\n\n  function W(t, s, p) { return { t: t, s: s, pt: p, ps: p }; }\n\n  var GROUPS = {\n    'db15-word-list-1': [\n      { t: '\u91ab\u751f', s: '\u533b\u751f', p: 'y\u012bsh\u0113ng', pos: 'N', meaning: 'doctor',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b','\u770b','k\u00e0n'), W('\u91ab\u751f','\u533b\u751f','y\u012bsh\u0113ng'), '\u3002'],\n        exEn: 'I need to go see a doctor.' },\n      { t: '\u4e00\u76f4', s: '\u4e00\u76f4', p: 'y\u00eczh\u00ed', pos: 'Adv', meaning: 'continuously, all the way',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e00\u76f4','\u4e00\u76f4','y\u00eczh\u00ed'), W('\u6d41','\u6d41','li\u00fa'), W('\u9f3b\u6c34','\u9f3b\u6c34','b\u00edshu\u01d0'), '\u3002'],\n        exEn: 'I keep having a runny nose.' },\n      { t: '\u6d41', s: '\u6d41', p: 'li\u00fa', pos: 'V', meaning: 'to flow',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e00\u76f4','\u4e00\u76f4','y\u00eczh\u00ed'), W('\u6d41','\u6d41','li\u00fa'), W('\u9f3b\u6c34','\u9f3b\u6c34','b\u00edshu\u01d0'), '\u3002'],\n        exEn: 'I keep having a runny nose.' },\n      { t: '\u9f3b\u6c34', s: '\u9f3b\u6c34', p: 'b\u00edshu\u01d0', pos: 'N', meaning: 'snot, nasal mucus, a running nose',\n        ex: [W('\u4ed6','\u4ed6','T\u0101'), W('\u4e00\u76f4','\u4e00\u76f4','y\u00eczh\u00ed'), W('\u6d41','\u6d41','li\u00fa'), W('\u9f3b\u6c34','\u9f3b\u6c34','b\u00edshu\u01d0'), '\u3002'],\n        exEn: \"He keeps having a runny nose.\" },\n      { t: '\u982d', s: '\u5934', p: 't\u00f3u', pos: 'N', meaning: 'head',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u982d','\u5934','t\u00f3u'), W('\u5f88','\u5f88','h\u011bn'), W('\u75db','\u75db','t\u00f2ng'), '\u3002'],\n        exEn: 'My head hurts a lot.' },\n      { t: '\u75db', s: '\u75db', p: 't\u00f2ng', pos: 'Vs', meaning: 'painful',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u809a\u5b50','\u809a\u5b50','d\u00f9zi'), W('\u5f88','\u5f88','h\u011bn'), W('\u75db','\u75db','t\u00f2ng'), '\u3002'],\n        exEn: 'My stomach hurts a lot.' },\n      { t: '\u80c3\u53e3', s: '\u80c3\u53e3', p: 'w\u00e8ik\u01d2u', pos: 'N', meaning: 'appetite',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u80c3\u53e3','\u80c3\u53e3','w\u00e8ik\u01d2u'), W('\u5f88','\u5f88','h\u011bn'), W('\u5dee','\u5dee','ch\u0101'), '\u3002'],\n        exEn: 'My appetite is very poor.' },\n      { t: '\u5dee', s: '\u5dee', p: 'ch\u0101', pos: 'Vs', meaning: 'poor, bad',\n        ex: [W('\u4ed6','\u4ed6','T\u0101'), W('\u7684','\u7684','de'), W('\u80c3\u53e3','\u80c3\u53e3','w\u00e8ik\u01d2u'), W('\u5f88','\u5f88','h\u011bn'), W('\u5dee','\u5dee','ch\u0101'), '\u3002'],\n        exEn: 'His appetite is very poor.' },\n      { t: '\u5589\u56a8', s: '\u5589\u5499', p: 'h\u00f3ul\u00f3ng', pos: 'N', meaning: 'throat',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u5589\u56a8','\u5589\u5499','h\u00f3ul\u00f3ng'), W('\u767c\u708e','\u53d1\u708e','f\u0101y\u00e1n'), W('\u4e86','\u4e86','le'), '\u3002'],\n        exEn: 'My throat is inflamed.' },\n      { t: '\u767c\u708e', s: '\u53d1\u708e', p: 'f\u0101y\u00e1n', pos: 'Vp-sep', meaning: 'to be inflamed',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u5589\u56a8','\u5589\u5499','h\u00f3ul\u00f3ng'), W('\u767c\u708e','\u53d1\u708e','f\u0101y\u00e1n'), W('\u4e86','\u4e86','le'), '\u3002'],\n        exEn: 'My throat is inflamed.' },\n      { t: '\u751f\u75c5', s: '\u751f\u75c5', p: 'sh\u0113ngb\u00ecng', pos: 'Vp-sep', meaning: 'to fall ill',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u751f\u75c5','\u751f\u75c5','sh\u0113ngb\u00ecng'), W('\u4e86','\u4e86','le'), '\u3002'],\n        exEn: \"I'm sick.\" },\n      { t: '\u767c\u71d2', s: '\u53d1\u70e7', p: 'f\u0101sh\u0101o', pos: 'Vp-sep', meaning: 'to have a fever',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u767c\u71d2','\u53d1\u70e7','f\u0101sh\u0101o'), W('\u4e86','\u4e86','le'), '\u3002'],\n        exEn: 'I have a fever.' },\n      { t: '\u611f\u5192', s: '\u611f\u5192', p: 'g\u01cenm\u00e0o', pos: 'Vp', meaning: 'to catch\/have a cold',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u611f\u5192','\u611f\u5192','g\u01cenm\u00e0o'), W('\u4e86','\u4e86','le'), '\u3002'],\n        exEn: \"I've caught a cold.\" },\n      { t: '\u85e5', s: '\u836f', p: 'y\u00e0o', pos: 'N', meaning: 'medicine',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u53bb','\u53bb','q\u00f9'), W('\u85e5\u5c40','\u836f\u5c40','y\u00e0oj\u00fa'), W('\u62ff','\u62ff','n\u00e1'), W('\u85e5','\u836f','y\u00e0o'), '\u3002'],\n        exEn: 'I need to go to the pharmacy to get medicine.' },\n      { t: '\u85e5\u5c40', s: '\u836f\u5c40', p: 'y\u00e0oj\u00fa', pos: 'N', meaning: 'pharmacy, drug store',\n        ex: [W('\u85e5\u5c40','\u836f\u5c40','Y\u00e0oj\u00fa'), W('\u5728','\u5728','z\u00e0i'), W('\u54ea\u88e1','\u54ea\u91cc','n\u01cel\u01d0'), '\uff1f'],\n        exEn: 'Where is the pharmacy?' },\n      { t: '\u62ff', s: '\u62ff', p: 'n\u00e1', pos: 'V', meaning: 'to get',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u53bb','\u53bb','q\u00f9'), W('\u85e5\u5c40','\u836f\u5c40','y\u00e0oj\u00fa'), W('\u62ff','\u62ff','n\u00e1'), W('\u85e5','\u836f','y\u00e0o'), '\u3002'],\n        exEn: 'I went to the pharmacy to get medicine.' },\n      { t: '\u628a', s: '\u628a', p: 'b\u01ce', pos: 'Ptc', meaning: 'disposal marker',\n        ex: [W('\u8acb','\u8bf7','Q\u01d0ng'), W('\u628a','\u628a','b\u01ce'), W('\u6c34','\u6c34','shu\u01d0'), W('\u7d66','\u7ed9','g\u011bi'), W('\u6211','\u6211','w\u01d2'), '\u3002'],\n        exEn: 'Please give me the water.' },\n      { t: '\u6c34', s: '\u6c34', p: 'shu\u01d0', pos: 'N', meaning: 'water',\n        ex: [W('\u8acb','\u8bf7','Q\u01d0ng'), W('\u628a','\u628a','b\u01ce'), W('\u6c34','\u6c34','shu\u01d0'), W('\u7d66','\u7ed9','g\u011bi'), W('\u6211','\u6211','w\u01d2'), '\u3002'],\n        exEn: 'Please give me the water.' },\n      { t: '\u4f11\u606f', s: '\u4f11\u606f', p: 'xi\u016bx\u00ed', pos: 'Vi', meaning: 'to take a rest',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u8981','\u8981','y\u00e0o'), W('\u591a','\u591a','du\u014d'), W('\u4f11\u606f','\u4f11\u606f','xi\u016bx\u00ed'), '\u3002'],\n        exEn: 'You should rest more.' },\n      { t: '\u7761\u89ba', s: '\u7761\u89c9', p: 'shu\u00ecji\u00e0o', pos: 'V-sep', meaning: 'to sleep',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u65e9','\u65e9','z\u01ceo'), W('\u4e00\u9ede','\u4e00\u70b9','y\u00ecdi\u01cen'), W('\u7761\u89ba','\u7761\u89c9','shu\u00ecji\u00e0o'), '\u3002'],\n        exEn: 'I want to sleep a bit earlier.' },\n      { t: '\u65e9\u4e00\u9ede', s: '\u65e9\u4e00\u70b9', p: 'z\u01ceo y\u00ecdi\u01cen', pos: 'Phrase', meaning: 'a bit earlier',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u6700\u597d','\u6700\u597d','zu\u00ech\u01ceo'), W('\u65e9\u4e00\u9ede','\u65e9\u4e00\u70b9','z\u01ceo y\u00ecdi\u01cen'), W('\u7761\u89ba','\u7761\u89c9','shu\u00ecji\u00e0o'), '\u3002'],\n        exEn: \"You'd better sleep a bit earlier.\" }\n    ],\n    'db15-word-list-2': [\n      { t: '\u81c9\u8272', s: '\u8138\u8272', p: 'li\u01cens\u00e8', pos: 'N', meaning: 'a person\\u2019s \\u201ccolor\\u201d (of the face, when healthy or sick, pleased or angry, etc.)',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u7684','\u7684','de'), W('\u81c9\u8272','\u8138\u8272','li\u01cens\u00e8'), W('\u5f88','\u5f88','h\u011bn'), W('\u96e3\u770b','\u96be\u770b','n\u00e1nk\u00e0n'), '\u3002'],\n        exEn: \"Your complexion doesn't look good.\" },\n      { t: '\u96e3\u770b', s: '\u96be\u770b', p: 'n\u00e1nk\u00e0n', pos: 'Vs', meaning: 'not to look good',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u7684','\u7684','de'), W('\u81c9\u8272','\u8138\u8272','li\u01cens\u00e8'), W('\u5f88','\u5f88','h\u011bn'), W('\u96e3\u770b','\u96be\u770b','n\u00e1nk\u00e0n'), '\u3002'],\n        exEn: \"Your complexion doesn't look good.\" },\n      { t: '\u809a\u5b50', s: '\u809a\u5b50', p: 'd\u00f9zi', pos: 'N', meaning: 'stomach, abdomen',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u809a\u5b50','\u809a\u5b50','d\u00f9zi'), W('\u5f88','\u5f88','h\u011bn'), W('\u75db','\u75db','t\u00f2ng'), '\u3002'],\n        exEn: 'My stomach hurts a lot.' },\n      { t: '\u5410', s: '\u5410', p: 't\u00f9', pos: 'V', meaning: 'to throw up, to vomit',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u5f88','\u5f88','h\u011bn'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u5410','\u5410','t\u00f9'), '\u3002'],\n        exEn: 'I feel like vomiting.' },\n      { t: '\u5e7e', s: '\u51e0', p: 'j\u01d0', pos: 'N', meaning: '(a) few',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u9019','\u8fd9','zh\u00e8'), W('\u5e7e','\u51e0','j\u01d0'), W('\u5929','\u5929','ti\u0101n'), W('\u4e00\u76f4','\u4e00\u76f4','y\u00eczh\u00ed'), W('\u982d','\u5934','t\u00f3u'), W('\u75db','\u75db','t\u00f2ng'), '\u3002'],\n        exEn: \"I've had a headache these past few days.\" },\n      { t: '\u6b21', s: '\u6b21', p: 'c\u00ec', pos: 'M', meaning: 'measure word for times, occurrences',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e00','\u4e00','y\u00ec'), W('\u5929','\u5929','ti\u0101n'), W('\u5403','\u5403','ch\u012b'), W('\u4e09','\u4e09','s\u0101n'), W('\u6b21','\u6b21','c\u00ec'), W('\u85e5','\u836f','y\u00e0o'), '\u3002'],\n        exEn: 'I take medicine three times a day.' },\n      { t: '\u966a', s: '\u966a', p: 'p\u00e9i', pos: 'V', meaning: 'to go\/stay with somebody, to accompany',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u966a','\u966a','p\u00e9i'), W('\u6211','\u6211','w\u01d2'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b\u75c5','\u770b\u75c5','k\u00e0nb\u00ecng'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Can you go with me to see the doctor?' },\n      { t: '\u770b\u75c5', s: '\u770b\u75c5', p: 'k\u00e0nb\u00ecng', pos: 'V-sep', meaning: 'to see a doctor',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b\u75c5','\u770b\u75c5','k\u00e0nb\u00ecng'), '\u3002'],\n        exEn: 'I need to go see a doctor.' },\n      { t: '\u5065\u5eb7', s: '\u5065\u5eb7', p: 'ji\u00e0nk\u0101ng', pos: 'N', meaning: 'health',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u5f88','\u5f88','h\u011bn'), W('\u95dc\u5fc3','\u5173\u5fc3','gu\u0101nx\u012bn'), W('\u4f60','\u4f60','n\u01d0'), W('\u7684','\u7684','de'), W('\u5065\u5eb7','\u5065\u5eb7','ji\u00e0nk\u0101ng'), '\u3002'],\n        exEn: \"I'm very concerned about your health.\" },\n      { t: '\u4fdd\u96aa', s: '\u4fdd\u9669', p: 'b\u01ceoxi\u01cen', pos: 'N', meaning: 'insurance',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u6709','\u6709','y\u01d2u'), W('\u5065\u5eb7','\u5065\u5eb7','ji\u00e0nk\u0101ng'), W('\u4fdd\u96aa','\u4fdd\u9669','b\u01ceoxi\u01cen'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Do you have health insurance?' },\n      { t: '\u8ddf', s: '\u8ddf', p: 'g\u0113n', pos: 'Prep', meaning: 'to, with',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u8ddf','\u8ddf','g\u0113n'), W('\u6211','\u6211','w\u01d2'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u53bb','\u53bb','q\u00f9'), W('\u85e5\u5c40','\u836f\u5c40','y\u00e0oj\u00fa'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Can you go to the pharmacy with me?' },\n      { t: '\u6cb9', s: '\u6cb9', p: 'y\u00f3u', pos: 'Vs', meaning: 'oily, greasy',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u500b','\u4e2a','ge'), W('\u83dc','\u83dc','c\u00e0i'), W('\u5f88','\u5f88','h\u011bn'), W('\u6cb9','\u6cb9','y\u00f3u'), '\u3002'],\n        exEn: 'This dish is very oily.' },\n      { t: '\u51b0', s: '\u51b0', p: 'b\u012bng', pos: 'Vs', meaning: 'icy',\n        ex: [W('\u5225','\u522b','Bi\u00e9'), W('\u559d','\u559d','h\u0113'), W('\u51b0','\u51b0','b\u012bng'), W('\u6c34','\u6c34','shu\u01d0'), '\u3002'],\n        exEn: \"Don't drink icy water.\" },\n      { t: '\u5225', s: '\u522b', p: 'bi\u00e9', pos: 'Adv', meaning: \"don't (used in imperatives)\",\n        ex: [W('\u5225','\u522b','Bi\u00e9'), W('\u559d','\u559d','h\u0113'), W('\u51b0','\u51b0','b\u012bng'), W('\u6c34','\u6c34','shu\u01d0'), '\u3002'],\n        exEn: \"Don't drink icy water.\" },\n      { t: '\u95dc\u5fc3', s: '\u5173\u5fc3', p: 'gu\u0101nx\u012bn', pos: 'Vst', meaning: 'to be concerned about',\n        ex: [W('\u8b1d\u8b1d','\u8c22\u8c22','Xi\u00e8xie'), W('\u4f60','\u4f60','n\u01d0'), W('\u95dc\u5fc3','\u5173\u5fc3','gu\u0101nx\u012bn'), W('\u6211','\u6211','w\u01d2'), '\u3002'],\n        exEn: 'Thank you for being concerned about me.' },\n      { t: '\u5305', s: '\u5305', p: 'b\u0101o', pos: 'M', meaning: 'measure word for bags, packages, etc.',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u8cb7','\u4e70','m\u01cei'), W('\u4e00','\u4e00','y\u00ec'), W('\u5305','\u5305','b\u0101o'), W('\u85e5','\u836f','y\u00e0o'), '\u3002'],\n        exEn: 'I want to buy a packet of medicine.' },\n      { t: '\u7761', s: '\u7761', p: 'shu\u00ec', pos: 'Vi', meaning: 'to sleep',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u8981','\u8981','y\u00e0o'), W('\u591a','\u591a','du\u014d'), W('\u7761','\u7761','shu\u00ec'), '\u3002'],\n        exEn: 'You should sleep more.' },\n      { t: '\u5c0f\u6642', s: '\u5c0f\u65f6', p: 'xi\u01ceosh\u00ed', pos: 'N', meaning: 'hour',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7761','\u7761','shu\u00ec'), W('\u4e86','\u4e86','le'), W('\u516b','\u516b','b\u0101'), W('\u500b','\u4e2a','ge'), W('\u5c0f\u6642','\u5c0f\u65f6','xi\u01ceosh\u00ed'), '\u3002'],\n        exEn: 'I slept for eight hours.' },\n      { t: '\u600e\u9ebc\u4e86', s: '\u600e\u4e48\u4e86', p: 'z\u011bnme le', pos: 'Phrase', meaning: \"What's wrong?\",\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u600e\u9ebc\u4e86','\u600e\u4e48\u4e86','z\u011bnme le'), '\uff1f'],\n        exEn: \"What's wrong with you?\" },\n      { t: '\u4e0d\u7528\u4e86', s: '\u4e0d\u7528\u4e86', p: 'b\u00fay\u00f2ng le', pos: 'Phrase', meaning: \"It's not necessary.\",\n        ex: [W('\u4e0d\u7528\u4e86','\u4e0d\u7528\u4e86','B\u00fay\u00f2ng le'), '\uff0c', W('\u8b1d\u8b1d','\u8c22\u8c22','xi\u00e8xie'), W('\u4f60','\u4f60','n\u01d0'), '\u3002'],\n        exEn: \"It's not necessary, thank you.\" },\n      { t: '\u5065\u5eb7\u4e2d\u5fc3', s: '\u5065\u5eb7\u4e2d\u5fc3', p: 'ji\u00e0nk\u0101ng zh\u014dngx\u012bn', pos: 'Phrase', meaning: 'health center',\n        ex: [W('\u5065\u5eb7\u4e2d\u5fc3','\u5065\u5eb7\u4e2d\u5fc3','Ji\u00e0nk\u0101ng zh\u014dngx\u012bn'), W('\u5728','\u5728','z\u00e0i'), W('\u54ea\u88e1','\u54ea\u91cc','n\u01cel\u01d0'), '\uff1f'],\n        exEn: \"Where is the health center?\" },\n      { t: '\u56de\u5bb6', s: '\u56de\u5bb6', p: 'hu\u00ed ji\u0101', pos: 'Phrase', meaning: 'go home',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u56de\u5bb6','\u56de\u5bb6','hu\u00ed ji\u0101'), W('\u4f11\u606f','\u4f11\u606f','xi\u016bx\u00ed'), '\u3002'],\n        exEn: 'I want to go home and rest.' },\n      { t: '\u6700\u597d', s: '\u6700\u597d', p: 'zu\u00ech\u01ceo', pos: 'Phrase', meaning: \"It would be best...\/(You) should...\",\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u6700\u597d','\u6700\u597d','zu\u00ech\u01ceo'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b','\u770b','k\u00e0n'), W('\u91ab\u751f','\u533b\u751f','y\u012bsh\u0113ng'), '\u3002'],\n        exEn: \"You'd better go see a doctor.\" }\n    ]\n  };\n\n  \/\/ Original dialogue (NOT from the textbook \u2014 no textbook dialogue pages\n  \/\/ were provided for this lesson), using this lesson's vocabulary plus\n  \/\/ ordinary everyday connector words.\n  var DIALOGUE = [\n    { speakerT: '\u7f8e\u73b2', speakerS: '\u7f8e\u73b2',\n      tokens: [W('\u4f60','\u4f60','N\u01d0'), W('\u600e\u9ebc\u4e86','\u600e\u4e48\u4e86','z\u011bnme le'), '\uff1f', W('\u81c9\u8272','\u8138\u8272','Li\u01cens\u00e8'), W('\u5f88','\u5f88','h\u011bn'), W('\u96e3\u770b','\u96be\u770b','n\u00e1nk\u00e0n'), '\u3002'],\n      en: \"What's wrong? You don't look good.\" },\n    { speakerT: '\u5927\u885b', speakerS: '\u5927\u536b',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u4e00\u76f4','\u4e00\u76f4','y\u00eczh\u00ed'), W('\u6d41','\u6d41','li\u00fa'), W('\u9f3b\u6c34','\u9f3b\u6c34','b\u00edshu\u01d0'), '\uff0c', W('\u982d','\u5934','t\u00f3u'), W('\u4e5f','\u4e5f','y\u011b'), W('\u5f88','\u5f88','h\u011bn'), W('\u75db','\u75db','t\u00f2ng'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u611f\u5192','\u611f\u5192','g\u01cenm\u00e0o'), W('\u4e86','\u4e86','le'), '\u3002'],\n      en: \"I keep having a runny nose, and my head hurts a lot too \u2014 I've caught a cold.\" },\n    { speakerT: '\u7f8e\u73b2', speakerS: '\u7f8e\u73b2',\n      tokens: [W('\u4f60','\u4f60','N\u01d0'), W('\u767c\u71d2','\u53d1\u70e7','f\u0101sh\u0101o'), W('\u4e86','\u4e86','le'), W('\u55ce','\u5417','ma'), '\uff1f'],\n      en: 'Do you have a fever?' },\n    { speakerT: '\u5927\u885b', speakerS: '\u5927\u536b',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u767c\u71d2','\u53d1\u70e7','f\u0101sh\u0101o'), W('\u4e86','\u4e86','le'), '\uff0c', W('\u5589\u56a8','\u5589\u5499','h\u00f3ul\u00f3ng'), W('\u4e5f','\u4e5f','y\u011b'), W('\u767c\u708e','\u53d1\u708e','f\u0101y\u00e1n'), W('\u4e86','\u4e86','le'), '\uff0c', W('\u80c3\u53e3','\u80c3\u53e3','w\u00e8ik\u01d2u'), W('\u5f88','\u5f88','h\u011bn'), W('\u5dee','\u5dee','ch\u0101'), '\uff0c', W('\u809a\u5b50','\u809a\u5b50','d\u00f9zi'), W('\u4e5f','\u4e5f','y\u011b'), W('\u5f88','\u5f88','h\u011bn'), W('\u75db','\u75db','t\u00f2ng'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u5f88','\u5f88','h\u011bn'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u5410','\u5410','t\u00f9'), '\u3002'],\n      en: \"I have a fever, my throat is inflamed too, my appetite is poor, my stomach hurts a lot, and I feel like vomiting.\" },\n    { speakerT: '\u7f8e\u73b2', speakerS: '\u7f8e\u73b2',\n      tokens: [W('\u4f60','\u4f60','N\u01d0'), W('\u6700\u597d','\u6700\u597d','zu\u00ech\u01ceo'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b','\u770b','k\u00e0n'), W('\u91ab\u751f','\u533b\u751f','y\u012bsh\u0113ng'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u966a','\u966a','p\u00e9i'), W('\u4f60','\u4f60','n\u01d0'), W('\u53bb','\u53bb','q\u00f9'), '\u3002'],\n      en: \"You'd better go see a doctor \u2014 I can go with you.\" },\n    { speakerT: '\u5927\u885b', speakerS: '\u5927\u536b',\n      tokens: [W('\u8b1d\u8b1d','\u8c22\u8c22','Xi\u00e8xie'), W('\u59b3','\u59b3','n\u01d0'), W('\u95dc\u5fc3','\u5173\u5fc3','gu\u0101nx\u012bn'), W('\u6211','\u6211','w\u01d2'), '\uff0c', W('\u4e0d\u7528\u4e86','\u4e0d\u7528\u4e86','b\u00fay\u00f2ng le'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u81ea\u5df1','\u81ea\u5df1','z\u00ecj\u01d0'), W('\u53bb','\u53bb','q\u00f9'), '\u3002'],\n      en: \"Thanks for being concerned about me \u2014 it's not necessary, I'll go myself.\" },\n    { speakerT: '\u7f8e\u73b2', speakerS: '\u7f8e\u73b2',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), '\uff0c', W('\u4f60','\u4f60','n\u01d0'), W('\u8981','\u8981','y\u00e0o'), W('\u591a','\u591a','du\u014d'), W('\u4f11\u606f','\u4f11\u606f','xi\u016bx\u00ed'), '\uff0c', W('\u65e9\u4e00\u9ede','\u65e9\u4e00\u70b9','z\u01ceo y\u00ecdi\u01cen'), W('\u7761\u89ba','\u7761\u89c9','shu\u00ecji\u00e0o'), '\uff0c', W('\u5225','\u522b','bi\u00e9'), W('\u559d','\u559d','h\u0113'), W('\u51b0','\u51b0','b\u012bng'), W('\u6c34','\u6c34','shu\u01d0'), '\u3002'],\n      en: \"OK, rest more, sleep a bit earlier, and don't drink icy water.\" },\n    { speakerT: '\u5927\u885b', speakerS: '\u5927\u536b',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u5148','\u5148','xi\u0101n'), W('\u56de\u5bb6','\u56de\u5bb6','hu\u00ed ji\u0101'), W('\u4f11\u606f','\u4f11\u606f','xi\u016bx\u00ed'), '\uff0c', W('\u518d','\u518d','z\u00e0i'), W('\u53bb','\u53bb','q\u00f9'), W('\u85e5\u5c40','\u836f\u5c40','y\u00e0oj\u00fa'), W('\u62ff','\u62ff','n\u00e1'), W('\u85e5','\u836f','y\u00e0o'), '\u3002'],\n      en: \"OK, I'll go home to rest first, then go to the pharmacy to get medicine.\" }\n  ];\n\n  var ALL_WORDS = [];\n  Object.keys(GROUPS).forEach(function (k) {\n    GROUPS[k].forEach(function (w) { ALL_WORDS.push(w); });\n  });\n\n  function rubyWord(w) {\n    return '<span class=\"db15-sent-word\">' +\n      '<ruby class=\"lang-zh-TW\"><span class=\"rb\">' + w.t + '<\/span><rt>' + w.pt + '<\/rt><\/ruby>' +\n      '<ruby class=\"lang-zh-CN\"><span class=\"rb\">' + w.s + '<\/span><rt>' + w.ps + '<\/rt><\/ruby>' +\n      '<\/span>';\n  }\n\n  function renderTokens(tokens) {\n    var html = '';\n    tokens.forEach(function (tok) {\n      if (typeof tok === 'string') {\n        html += '<span class=\"db15-punct\">' + tok + '<\/span>';\n      } else {\n        html += rubyWord(tok);\n      }\n    });\n    return html;\n  }\n\n  function headwordRuby(t, s, pt, ps) {\n    return '<ruby class=\"lang-zh-TW\"><span class=\"rb\">' + t + '<\/span><rt>' + pt + '<\/rt><\/ruby>' +\n           '<ruby class=\"lang-zh-CN\"><span class=\"rb\">' + s + '<\/span><rt>' + ps + '<\/rt><\/ruby>';\n  }\n\n  var counter = 0;\n  Object.keys(GROUPS).forEach(function (containerId) {\n    var container = root.querySelector('#' + containerId);\n    if (!container) return;\n    var html = '';\n    GROUPS[containerId].forEach(function (w) {\n      counter++;\n      var num = (counter < 10 ? '0' : '') + counter;\n      html += '<div class=\"db15-word-card\">' +\n        '<div class=\"db15-word-top\">' +\n          '<span class=\"db15-num\">' + num + '<\/span>' +\n          '<span class=\"db15-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>' +\n          '<span class=\"db15-pos\">' + w.pos + '<\/span>' +\n          '<span class=\"db15-meaning\">' + w.meaning + '<\/span>' +\n          '<button class=\"db15-speaker\" data-trad=\"' + w.t + '\" data-simp=\"' + w.s + '\" aria-label=\"Play pronunciation\">' + SPEAKER_SVG + '<\/button>' +\n        '<\/div>' +\n        '<div class=\"db15-example\">' +\n          renderTokens(w.ex) +\n          '<span class=\"db15-en\">' + w.exEn + '<\/span>' +\n        '<\/div>' +\n      '<\/div>';\n    });\n    container.innerHTML = html;\n  });\n\n  var dialogueEl = root.querySelector('#db15-dialogue');\n  if (dialogueEl) {\n    var dHtml = '';\n    DIALOGUE.forEach(function (line) {\n      dHtml += '<div class=\"db15-line\">' +\n        '<span class=\"db15-speaker-tag\">' +\n          '<span class=\"lang-zh-TW\">' + line.speakerT + '<\/span>' +\n          '<span class=\"lang-zh-CN\">' + line.speakerS + '<\/span>' +\n        '<\/span>' +\n        '<span class=\"db15-line-body\">' +\n          renderTokens(line.tokens) +\n          '<span class=\"db15-line-en\">' + line.en + '<\/span>' +\n        '<\/span>' +\n      '<\/div>';\n    });\n    dialogueEl.innerHTML = dHtml;\n  }\n\n  \/\/ ---- Flashcards ----\n  var fcCard = root.querySelector('#db15-flashcard');\n  var fcFront = root.querySelector('#db15-fc-front');\n  var fcBack = root.querySelector('#db15-fc-back');\n  var fcProgress = root.querySelector('#db15-fc-progress');\n  var fcPrevBtn = root.querySelector('#db15-fc-prev');\n  var fcNextBtn = root.querySelector('#db15-fc-next');\n  var fcIndex = 0;\n  var fcFlipped = false;\n\n  function renderFlashcard() {\n    var w = ALL_WORDS[fcIndex];\n    if (!w || !fcFront || !fcBack) return;\n    fcFront.innerHTML = '<span class=\"db15-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>';\n    fcBack.innerHTML = '<span class=\"db15-meaning\">' + w.meaning + '<\/span><span class=\"db15-pos\">' + w.pos + '<\/span>';\n    if (fcProgress) fcProgress.textContent = (fcIndex + 1) + ' \/ ' + ALL_WORDS.length;\n    if (fcCard) fcCard.classList.remove('db15-flipped');\n    fcFlipped = false;\n  }\n\n  if (fcCard) {\n    fcCard.addEventListener('click', function () {\n      fcFlipped = !fcFlipped;\n      fcCard.classList.toggle('db15-flipped', fcFlipped);\n    });\n  }\n  if (fcPrevBtn) fcPrevBtn.addEventListener('click', function () {\n    fcIndex = (fcIndex - 1 + ALL_WORDS.length) % ALL_WORDS.length;\n    renderFlashcard();\n  });\n  if (fcNextBtn) fcNextBtn.addEventListener('click', function () {\n    fcIndex = (fcIndex + 1) % ALL_WORDS.length;\n    renderFlashcard();\n  });\n  renderFlashcard();\n\n  \/\/ ---- Match It game ----\n  var gameColZh = root.querySelector('#db15-game-col-zh');\n  var gameColEn = root.querySelector('#db15-game-col-en');\n  var gameStatus = root.querySelector('#db15-game-status');\n  var gameWin = root.querySelector('#db15-game-win');\n  var gameNewBtn = root.querySelector('#db15-game-new');\n  var gameRound = [];\n  var gameSelectedZh = null;\n  var gameSelectedEn = null;\n  var gameMatchedCount = 0;\n  var gameBusy = false;\n\n  function shuffle(arr) {\n    var a = arr.slice();\n    for (var i = a.length - 1; i > 0; i--) {\n      var j = Math.floor(Math.random() * (i + 1));\n      var tmp = a[i]; a[i] = a[j]; a[j] = tmp;\n    }\n    return a;\n  }\n\n  function startRound() {\n    gameRound = shuffle(ALL_WORDS).slice(0, 8);\n    gameSelectedZh = null;\n    gameSelectedEn = null;\n    gameMatchedCount = 0;\n    gameBusy = false;\n    if (gameWin) gameWin.classList.remove('db15-show');\n\n    var zhOrder = shuffle(gameRound);\n    var enOrder = shuffle(gameRound);\n\n    gameColZh.innerHTML = zhOrder.map(function (w) {\n      return '<button class=\"db15-tile\" data-id=\"' + w.t + '\" data-side=\"zh\">' +\n        '<span class=\"lang-zh-TW\">' + w.t + '<\/span><span class=\"lang-zh-CN\">' + w.s + '<\/span>' +\n        '<span class=\"db15-tile-py\">' + (w.pt || w.p) + '<\/span>' +\n      '<\/button>';\n    }).join('');\n\n    gameColEn.innerHTML = enOrder.map(function (w) {\n      return '<button class=\"db15-tile\" data-id=\"' + w.t + '\" data-side=\"en\">' + w.meaning + '<\/button>';\n    }).join('');\n\n    updateGameStatus();\n  }\n\n  function updateGameStatus() {\n    if (gameStatus) gameStatus.textContent = gameMatchedCount + ' \/ ' + gameRound.length + ' matched';\n  }\n\n  function handleTileClick(tile) {\n    if (gameBusy || tile.classList.contains('db15-matched')) return;\n    var side = tile.getAttribute('data-side');\n\n    if (side === 'zh') {\n      if (gameSelectedZh) gameSelectedZh.classList.remove('db15-selected');\n      gameSelectedZh = tile;\n      tile.classList.add('db15-selected');\n    } else {\n      if (gameSelectedEn) gameSelectedEn.classList.remove('db15-selected');\n      gameSelectedEn = tile;\n      tile.classList.add('db15-selected');\n    }\n\n    if (gameSelectedZh) {\n      if (gameSelectedEn) {\n        var zhId = gameSelectedZh.getAttribute('data-id');\n        var enId = gameSelectedEn.getAttribute('data-id');\n        if (zhId === enId) {\n          gameSelectedZh.classList.remove('db15-selected');\n          gameSelectedEn.classList.remove('db15-selected');\n          gameSelectedZh.classList.add('db15-matched');\n          gameSelectedEn.classList.add('db15-matched');\n          gameMatchedCount++;\n          updateGameStatus();\n          gameSelectedZh = null;\n          gameSelectedEn = null;\n          var roundDone = (gameMatchedCount === gameRound.length);\n          if (roundDone) {\n            if (gameWin) {\n              gameWin.classList.add('db15-show');\n            }\n          }\n        } else {\n          gameBusy = true;\n          var z = gameSelectedZh, en = gameSelectedEn;\n          z.classList.add('db15-wrong');\n          en.classList.add('db15-wrong');\n          setTimeout(function () {\n            z.classList.remove('db15-selected', 'db15-wrong');\n            en.classList.remove('db15-selected', 'db15-wrong');\n            gameBusy = false;\n          }, 400);\n          gameSelectedZh = null;\n          gameSelectedEn = null;\n        }\n      }\n    }\n  }\n\n  root.addEventListener('click', function (e) {\n    var tile = e.target.closest('.db15-tile');\n    if (tile) {\n      if (root.contains(tile)) handleTileClick(tile);\n    }\n  });\n  if (gameNewBtn) gameNewBtn.addEventListener('click', startRound);\n\n  startRound();\n\n  \/\/ ---- Vocabulary Quiz ----\n  var QUIZ_DATA = [\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u611f\u5192<\/span><span class=\"lang-zh-CN\">\u611f\u5192<\/span> means...', options: ['to catch\/have a cold', 'to have a fever', 'to fall ill', 'to be inflamed'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u982d<\/span><span class=\"lang-zh-CN\">\u5934<\/span>.', accept: ['tou'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u5589\u56a8<\/span><span class=\"lang-zh-CN\">\u5589\u5499<\/span> means...', options: ['throat', 'stomach', 'head', 'appetite'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u85e5\u5c40<\/span><span class=\"lang-zh-CN\">\u836f\u5c40<\/span>.', accept: ['pharmacy', 'drug store', 'drugstore'] },\n    { type: 'mc', prompt: 'Which word means \"to take a rest\"?', options: ['<span class=\"lang-zh-TW\">\u4f11\u606f<\/span><span class=\"lang-zh-CN\">\u4f11\u606f<\/span>', '<span class=\"lang-zh-TW\">\u7761\u89ba<\/span><span class=\"lang-zh-CN\">\u7761\u89c9<\/span>', '<span class=\"lang-zh-TW\">\u770b\u75c5<\/span><span class=\"lang-zh-CN\">\u770b\u75c5<\/span>', '<span class=\"lang-zh-TW\">\u56de\u5bb6<\/span><span class=\"lang-zh-CN\">\u56de\u5bb6<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u81c9\u8272<\/span><span class=\"lang-zh-CN\">\u8138\u8272<\/span>.', accept: ['lianse'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u809a\u5b50<\/span><span class=\"lang-zh-CN\">\u809a\u5b50<\/span> means...', options: ['stomach, abdomen', 'throat', 'head', 'appetite'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u5410<\/span><span class=\"lang-zh-CN\">\u5410<\/span>.', accept: ['vomit', 'throw up', 'to vomit', 'to throw up'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u966a<\/span><span class=\"lang-zh-CN\">\u966a<\/span> means...', options: ['to accompany', 'to be concerned about', 'to get', 'to see a doctor'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u5065\u5eb7<\/span><span class=\"lang-zh-CN\">\u5065\u5eb7<\/span>.', accept: ['jiankang'] },\n    { type: 'mc', prompt: 'Which word means \"insurance\"?', options: ['<span class=\"lang-zh-TW\">\u4fdd\u96aa<\/span><span class=\"lang-zh-CN\">\u4fdd\u9669<\/span>', '<span class=\"lang-zh-TW\">\u5065\u5eb7<\/span><span class=\"lang-zh-CN\">\u5065\u5eb7<\/span>', '<span class=\"lang-zh-TW\">\u5c0f\u6642<\/span><span class=\"lang-zh-CN\">\u5c0f\u65f6<\/span>', '<span class=\"lang-zh-TW\">\u6b21<\/span><span class=\"lang-zh-CN\">\u6b21<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u5225<\/span><span class=\"lang-zh-CN\">\u522b<\/span>.', accept: [\"don't\", 'dont'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u600e\u9ebc\u4e86<\/span><span class=\"lang-zh-CN\">\u600e\u4e48\u4e86<\/span> means...', options: [\"What's wrong?\", \"It's not necessary.\", \"You'd better...\", 'go home'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u95dc\u5fc3<\/span><span class=\"lang-zh-CN\">\u5173\u5fc3<\/span>.', accept: ['guanxin'] },\n    { type: 'mc', prompt: 'Which word is the disposal marker (used before a verb like \u7d66\/\u5fae\u6ce2)?', options: ['<span class=\"lang-zh-TW\">\u628a<\/span><span class=\"lang-zh-CN\">\u628a<\/span>', '<span class=\"lang-zh-TW\">\u8ddf<\/span><span class=\"lang-zh-CN\">\u8ddf<\/span>', '<span class=\"lang-zh-TW\">\u966a<\/span><span class=\"lang-zh-CN\">\u966a<\/span>', '<span class=\"lang-zh-TW\">\u62ff<\/span><span class=\"lang-zh-CN\">\u62ff<\/span>'], answer: 0 }\n  ];\n\n  function stripTones(s) {\n    return s.normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '').toLowerCase().replace(\/[^a-z0-9]\/g, '');\n  }\n\n  (function initQuiz() {\n    var qRoot = root.querySelector('#db15-quiz');\n    if (!qRoot) return;\n    var current = 0;\n    var score = 0;\n    var answered = false;\n\n    function render() {\n      if (current >= QUIZ_DATA.length) { renderScore(); return; }\n      var q = QUIZ_DATA[current];\n      answered = false;\n      var html = '<p class=\"db15-quiz-progress\">Question ' + (current + 1) + ' of ' + QUIZ_DATA.length + '<\/p>';\n      html += '<p class=\"db15-quiz-prompt\">' + q.prompt + '<\/p>';\n      if (q.type === 'mc') {\n        html += '<div class=\"db15-quiz-options\">';\n        for (var i = 0; i < q.options.length; i++) {\n          html += '<button type=\"button\" class=\"db15-quiz-opt\" data-i=\"' + i + '\">' + q.options[i] + '<\/button>';\n        }\n        html += '<\/div>';\n      } else {\n        html += '<div class=\"db15-quiz-input-row\">';\n        html += '<input type=\"text\" class=\"db15-quiz-input\" placeholder=\"Type your answer\">';\n        html += '<button type=\"button\" class=\"db15-quiz-submit\">Submit<\/button>';\n        html += '<\/div>';\n      }\n      html += '<p class=\"db15-quiz-feedback\"><\/p>';\n      html += '<button type=\"button\" class=\"db15-quiz-next\" style=\"display:none;\">Next<\/button>';\n      qRoot.innerHTML = html;\n\n      if (q.type === 'mc') {\n        var opts = qRoot.querySelectorAll('.db15-quiz-opt');\n        opts.forEach(function (btn) {\n          btn.addEventListener('click', function () {\n            if (answered) return;\n            answered = true;\n            var i = parseInt(this.getAttribute('data-i'), 10);\n            var correct = i === q.answer;\n            if (correct) score++;\n            opts.forEach(function (b, bi) {\n              b.setAttribute('disabled', 'disabled');\n              if (bi === q.answer) b.classList.add('correct');\n              else if (bi === i) b.classList.add('incorrect');\n            });\n            showFeedback(correct);\n          });\n        });\n      } else {\n        var input = qRoot.querySelector('.db15-quiz-input');\n        var submitBtn = qRoot.querySelector('.db15-quiz-submit');\n        function submit() {\n          if (answered) return;\n          answered = true;\n          var val = stripTones(input.value || '');\n          var correct = q.accept.indexOf(val) !== -1;\n          if (correct) score++;\n          input.setAttribute('disabled', 'disabled');\n          submitBtn.setAttribute('disabled', 'disabled');\n          showFeedback(correct, q.accept[0]);\n        }\n        submitBtn.addEventListener('click', submit);\n        input.addEventListener('keydown', function (e) { if (e.key === 'Enter') submit(); });\n      }\n\n      function showFeedback(correct, correctAnswer) {\n        var fb = qRoot.querySelector('.db15-quiz-feedback');\n        if (correct) {\n          fb.textContent = 'Correct!';\n        } else if (correctAnswer) {\n          fb.textContent = 'Not quite \u2014 the answer is \"' + correctAnswer + '\".';\n        } else {\n          fb.textContent = 'Not quite \u2014 check the highlighted answer above.';\n        }\n        fb.className = 'db15-quiz-feedback ' + (correct ? 'correct' : 'incorrect');\n        var nextBtn = qRoot.querySelector('.db15-quiz-next');\n        nextBtn.style.display = 'inline-block';\n        nextBtn.addEventListener('click', function () { current++; render(); });\n      }\n    }\n\n    function renderScore() {\n      qRoot.innerHTML =\n        '<div class=\"db15-quiz-score\">' +\n        '<span class=\"db15-quiz-score-num\">' + score + ' \/ ' + QUIZ_DATA.length + '<\/span>' +\n        '<p>Nice work! Want to try again?<\/p>' +\n        '<button type=\"button\" class=\"db15-quiz-retake\">Retake Quiz<\/button>' +\n        '<\/div>';\n      qRoot.querySelector('.db15-quiz-retake').addEventListener('click', function () {\n        current = 0; score = 0; render();\n      });\n    }\n\n    render();\n  })();\n\n  \/\/ Speaker buttons (event delegation, Web Speech API)\n  root.addEventListener('click', function (e) {\n    var btn = e.target.closest('.db15-speaker');\n    if (!btn || !root.contains(btn)) return;\n    if (!('speechSynthesis' in window)) return;\n    var showingSimp = false;\n    var simpEl = root.querySelector('.lang-zh-CN');\n    if (simpEl) {\n      if (simpEl.offsetParent !== null) showingSimp = true;\n    }\n    var text = showingSimp ? btn.getAttribute('data-simp') : btn.getAttribute('data-trad');\n    var utter = new SpeechSynthesisUtterance(text);\n    utter.lang = showingSimp ? 'zh-CN' : 'zh-TW';\n    window.speechSynthesis.cancel();\n    window.speechSynthesis.speak(utter);\n  });\n})();\n<\/script>\n<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-medium is-resized\"><a href=\"https:\/\/ko-fi.com\/tiffanystalk\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"58\" src=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-300x58.png\" alt=\"\" class=\"wp-image-570\" style=\"width:150px;height:29px\" srcset=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-300x58.png 300w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-600x115.png 600w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-1024x197.png 1024w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-768x148.png 768w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-1536x296.png 1536w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-2048x394.png 2048w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-850x164.png 850w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Do you like it? \ud83d\ude42<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium is-resized\"><a href=\"https:\/\/tiffanysmandarin.com\/index.php\/contemporary-chinese-book-1\/\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"86\" src=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png\" alt=\"\" class=\"wp-image-571\" style=\"width:150px;height:43px\" srcset=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png 300w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-600x171.png 600w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963.png 700w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":10970,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_convertkit_post_meta":{"form":"-1","landing_page":"0","tag":"0","restrict_content":"0"},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1099],"tags":[],"class_list":["post-13005","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1099"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>B1 L15 Vocabulary and Practice - OneDotDot Chinese<\/title>\n<meta name=\"description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 15\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"B1 L15 Vocabulary and Practice - OneDotDot Chinese\" \/>\n<meta property=\"og:description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 15\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/\" \/>\n<meta property=\"og:site_name\" content=\"OneDotDot Chinese\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-07T16:23:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-08T08:45:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"tiffany\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tiffany\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/\"},\"author\":{\"name\":\"tiffany\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"headline\":\"B1 L15 Vocabulary and Practice\",\"datePublished\":\"2025-08-07T16:23:51+00:00\",\"dateModified\":\"2026-09-08T08:45:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"articleSection\":[\"\u7576\u4ee3\u4e2d\u6587 1\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/\",\"name\":\"B1 L15 Vocabulary and Practice - OneDotDot Chinese\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"datePublished\":\"2025-08-07T16:23:51+00:00\",\"dateModified\":\"2026-09-08T08:45:44+00:00\",\"description\":\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 15\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"contentUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"width\":800,\"height\":300,\"caption\":\"\u7576\u4ee3\u4e2d\u65871\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/08\\\/08\\\/contemporary-chinese-vocabulary-practice-b1l15\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"B1 L15 Vocabulary and Practice\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\",\"name\":\"OneDotDot Chinese\",\"description\":\"Learn a little Chinese every day\",\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tiffanysmandarin.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\",\"name\":\"tiffany\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"url\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"contentUrl\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"width\":214,\"height\":214,\"caption\":\"tiffany\"},\"logo\":{\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/tiffanys_talk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tiffany-huang-mandarin\\\/\"],\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/author\\\/tiffany\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"B1 L15 Vocabulary and Practice - OneDotDot Chinese","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 15","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/","og_locale":"en_US","og_type":"article","og_title":"B1 L15 Vocabulary and Practice - OneDotDot Chinese","og_description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 15","og_url":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/","og_site_name":"OneDotDot Chinese","article_published_time":"2025-08-07T16:23:51+00:00","article_modified_time":"2026-09-08T08:45:44+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","type":"image\/jpeg"}],"author":"tiffany","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tiffany","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#article","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/"},"author":{"name":"tiffany","@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"headline":"B1 L15 Vocabulary and Practice","datePublished":"2025-08-07T16:23:51+00:00","dateModified":"2026-09-08T08:45:44+00:00","mainEntityOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/"},"wordCount":9,"publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","articleSection":["\u7576\u4ee3\u4e2d\u6587 1"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/","url":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/","name":"B1 L15 Vocabulary and Practice - OneDotDot Chinese","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#primaryimage"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","datePublished":"2025-08-07T16:23:51+00:00","dateModified":"2026-09-08T08:45:44+00:00","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 15","breadcrumb":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#primaryimage","url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","contentUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","width":800,"height":300,"caption":"\u7576\u4ee3\u4e2d\u65871"},{"@type":"BreadcrumbList","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/08\/08\/contemporary-chinese-vocabulary-practice-b1l15\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/tiffanysmandarin.com\/"},{"@type":"ListItem","position":2,"name":"B1 L15 Vocabulary and Practice"}]},{"@type":"WebSite","@id":"https:\/\/tiffanysmandarin.com\/#website","url":"https:\/\/tiffanysmandarin.com\/","name":"OneDotDot Chinese","description":"Learn a little Chinese every day","publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tiffanysmandarin.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99","name":"tiffany","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","url":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","contentUrl":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","width":214,"height":214,"caption":"tiffany"},"logo":{"@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png"},"sameAs":["https:\/\/www.instagram.com\/tiffanys_talk\/","https:\/\/www.linkedin.com\/in\/tiffany-huang-mandarin\/"],"url":"https:\/\/tiffanysmandarin.com\/index.php\/author\/tiffany\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","_links":{"self":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/13005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/comments?post=13005"}],"version-history":[{"count":2,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/13005\/revisions"}],"predecessor-version":[{"id":16751,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/13005\/revisions\/16751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media\/10970"}],"wp:attachment":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media?parent=13005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/categories?post=13005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/tags?post=13005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}