{"id":12885,"date":"2025-07-16T00:01:57","date_gmt":"2025-07-15T16:01:57","guid":{"rendered":"https:\/\/tiffanysmandarin.com\/?p=12885"},"modified":"2026-09-08T05:35:50","modified_gmt":"2026-09-07T21:35:50","slug":"contemporary-chinese-vocabulary-practice-b1l3","status":"publish","type":"post","link":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/","title":{"rendered":"B1 L3 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 Book 1 \u00b7 Lesson 3 \u300c\u9031\u672b\u505a\u4ec0\u9ebc\uff1f\u300d What Are You Doing Over the Weekend? \u2014 Vocabulary Embed v2 (corrected)\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  This replaces the previous draft's word list, which included several\n  invented\/uncorroborated words (\u6253\u7403, \u5531\u6b4c, \u8df3\u821e, \u4e0a\u7db2, \u7761\u89ba, \u5e38\u5e38 [should\n  be \u5e38, single character], \u4ec0\u9ebc\u6642\u5019, \u627e, \u8d8a\u5357\u83dc, \u81fa\u7063\u83dc as separate\n  headwords) and was MISSING many actual Lesson 3 words (\u807d, \u97f3\u6a02, \u904b\u52d5,\n  \u6253, \u548c, \u4e5f, \u8e22, \u8db3\u7403, \u89ba\u5f97, \u597d\u73a9, \u53bb, \u600e\u9ebc\u6a23, \u554a, \u505a\u4ec0\u9ebc, \u597d\u554a, \u4eca\u5929, \u59b3,\n  \u9084\u662f, \u5427, \u53ef\u4ee5, \u5b78, \u4e2d\u6587, \u5403, \u665a\u98ef) with the ACTUAL Lesson 3 vocabulary\n  transcribed word-for-word from the textbook's \u751f\u8a5e\u4e00 \/ \u751f\u8a5e\u4e8c pages\n  (including the Names\/Phrases sections), with the part-of-speech tags\n  shown in the book.\n\n  The dialogue in section 05 is an ORIGINAL conversation (not from the\n  textbook) built only from vocabulary confirmed to appear in Lesson 1 +\n  Lesson 2 + Lesson 3, so it doesn't reproduce the copyrighted textbook\n  dialogue.\n\n  Same technical pattern as the Lesson 1 \/ Lesson 2 embeds:\n    - No <!DOCTYPE>\/<html>\/<head>\/<body>; CSS scoped under\n      .dangdai-b1l3-vocab-embed with its own --db3-* variables\n    - Ruby: lang-zh-TW \/ lang-zh-CN written consecutively, word-by-word\n      segmentation in every example\/dialogue sentence, punctuation as\n      plain text\n    - Root lookup by id (#dangdai-b1l3-vocab-embed-2), not currentScript\n    - No literal `&&` inside <script> (WordPress mangles it) \u2014 nested\n      `if` blocks used instead in Match It\n-->\n<div class=\"dangdai-b1l3-vocab-embed\" id=\"dangdai-b1l3-vocab-embed-2\">\n<style>\n.dangdai-b1l3-vocab-embed {\n  --db3-oxblood: #7b2d26;\n  --db3-oxblood-dark: #5e211c;\n  --db3-mustard: #c9922b;\n  --db3-sage: #7c8b6f;\n  --db3-bone: #f7f1e6;\n  --db3-ink: #2c2620;\n  --db3-line: #e4d9c4;\n  font-family: 'Work Sans', -apple-system, sans-serif;\n  color: var(--db3-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-b1l3-vocab-embed * { box-sizing: border-box; }\n.dangdai-b1l3-vocab-embed h1,\n.dangdai-b1l3-vocab-embed h2,\n.dangdai-b1l3-vocab-embed h3 {\n  font-family: 'Bitter', Georgia, serif;\n  color: var(--db3-oxblood-dark);\n  margin: 0 0 8px;\n}\n.dangdai-b1l3-vocab-embed .db3-support-note {\n  font-size: 0.85rem;\n  color: var(--db3-sage);\n  border-bottom: 1px solid var(--db3-line);\n  padding-bottom: 12px;\n  margin: 0 0 16px;\n}\n.dangdai-b1l3-vocab-embed .db3-lede {\n  margin: 0 0 24px;\n  padding: 14px 16px;\n  background: var(--db3-bone);\n  border-left: 4px solid var(--db3-mustard);\n  border-radius: 4px;\n  font-size: 0.98rem;\n}\n.dangdai-b1l3-vocab-embed .db3-lede b { color: var(--db3-oxblood-dark); }\n.dangdai-b1l3-vocab-embed .db3-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(--db3-oxblood);\n  padding: 3px 9px;\n  border-radius: 3px;\n  margin: 32px 0 10px;\n}\n.dangdai-b1l3-vocab-embed .db3-people-card {\n  border: 1px solid var(--db3-line);\n  border-radius: 8px;\n  padding: 12px 14px;\n  margin-bottom: 10px;\n  background: var(--db3-bone);\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  flex-wrap: wrap;\n}\n.dangdai-b1l3-vocab-embed .db3-word-card {\n  border: 1px solid var(--db3-line);\n  border-radius: 8px;\n  padding: 12px 14px;\n  margin-bottom: 10px;\n  background: #fff;\n}\n.dangdai-b1l3-vocab-embed .db3-word-top {\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  flex-wrap: wrap;\n}\n.dangdai-b1l3-vocab-embed .db3-num {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  color: var(--db3-mustard);\n  min-width: 22px;\n}\n.dangdai-b1l3-vocab-embed .db3-hanzi { font-size: 1.35rem; font-weight: 600; }\n.dangdai-b1l3-vocab-embed .db3-pos {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: #fff;\n  background: var(--db3-sage);\n  padding: 2px 7px;\n  border-radius: 10px;\n}\n.dangdai-b1l3-vocab-embed ruby {\n  ruby-position: over;\n  margin-right: 2px;\n  color: var(--db3-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-b1l3-vocab-embed .rb {\n  color: var(--db3-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-b1l3-vocab-embed rt {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.6rem !important;\n  color: var(--db3-sage) !important;\n  font-weight: 400;\n}\n.dangdai-b1l3-vocab-embed .db3-meaning { font-style: italic; color: #6b5f52; font-size: 0.92rem; }\n.dangdai-b1l3-vocab-embed .db3-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(--db3-bone);\n  color: var(--db3-oxblood);\n  border-radius: 50%;\n  cursor: pointer;\n  margin-left: auto;\n}\n.dangdai-b1l3-vocab-embed .db3-speaker:hover { background: var(--db3-mustard); color: #fff; }\n.dangdai-b1l3-vocab-embed .db3-example {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px dashed var(--db3-line);\n  font-size: 0.95rem;\n}\n.dangdai-b1l3-vocab-embed .db3-example .db3-sent-word { display: inline-flex; }\n.dangdai-b1l3-vocab-embed .db3-example .db3-punct { margin-right: 2px; }\n.dangdai-b1l3-vocab-embed .db3-example .db3-en {\n  display: block;\n  color: #6b5f52;\n  font-size: 0.85rem;\n  margin-top: 4px;\n}\n.dangdai-b1l3-vocab-embed .db3-dialogue-note { font-size: 0.85rem; color: #6b5f52; margin: 0 0 10px; }\n.dangdai-b1l3-vocab-embed .db3-dialogue {\n  background: var(--db3-bone);\n  border-radius: 8px;\n  padding: 16px 18px;\n  margin-top: 8px;\n}\n.dangdai-b1l3-vocab-embed .db3-line {\n  display: flex;\n  gap: 8px;\n  margin-bottom: 12px;\n  align-items: flex-start;\n  flex-wrap: wrap;\n}\n.dangdai-b1l3-vocab-embed .db3-speaker-tag {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.72rem;\n  color: var(--db3-oxblood);\n  min-width: 46px;\n  padding-top: 3px;\n}\n.dangdai-b1l3-vocab-embed .db3-line-body { flex: 1; min-width: 200px; }\n.dangdai-b1l3-vocab-embed .db3-line-en { display: block; color: #6b5f52; font-size: 0.82rem; margin-top: 2px; }\n\n.dangdai-b1l3-vocab-embed .db3-fc-hint { font-size: 0.85rem; color: #6b5f52; margin: 0 0 12px; text-align: center; }\n.dangdai-b1l3-vocab-embed .db3-flashcard-wrap { max-width: 320px; margin: 0 auto 14px; perspective: 1200px; }\n.dangdai-b1l3-vocab-embed .db3-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-b1l3-vocab-embed .db3-flashcard.db3-flipped { transform: rotateY(180deg); }\n.dangdai-b1l3-vocab-embed .db3-fc-face {\n  position: absolute;\n  inset: 0;\n  backface-visibility: hidden;\n  border: 1px solid var(--db3-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-b1l3-vocab-embed .db3-fc-back { transform: rotateY(180deg); background: var(--db3-bone); }\n.dangdai-b1l3-vocab-embed .db3-fc-front .db3-hanzi { font-size: 4rem !important; }\n.dangdai-b1l3-vocab-embed .db3-flashcard-wrap rt { font-size: 1.2rem !important; }\n.dangdai-b1l3-vocab-embed .db3-fc-back .db3-meaning { font-style: italic; color: var(--db3-oxblood-dark); font-size: 1.725rem; }\n.dangdai-b1l3-vocab-embed .db3-fc-back .db3-pos { margin-top: 8px; }\n.dangdai-b1l3-vocab-embed .db3-flashcard-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 28px; }\n.dangdai-b1l3-vocab-embed .db3-game-btn {\n  font-family: 'Work Sans', sans-serif;\n  font-size: 0.85rem;\n  border: 1px solid var(--db3-oxblood);\n  color: var(--db3-oxblood);\n  background: #fff;\n  padding: 6px 14px;\n  border-radius: 20px;\n  cursor: pointer;\n}\n.dangdai-b1l3-vocab-embed .db3-game-btn:hover { background: var(--db3-oxblood); color: #fff; }\n.dangdai-b1l3-vocab-embed .db3-game-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }\n.dangdai-b1l3-vocab-embed .db3-game-status { font-family: 'IBM Plex Mono', monospace; font-size: 0.82rem; color: var(--db3-sage); }\n.dangdai-b1l3-vocab-embed .db3-game-board { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n.dangdai-b1l3-vocab-embed .db3-game-col { display: flex; flex-direction: column; gap: 8px; }\n.dangdai-b1l3-vocab-embed .db3-tile {\n  font-family: 'Work Sans', sans-serif;\n  text-align: left;\n  border: 1px solid var(--db3-line);\n  background: #fff;\n  border-radius: 6px;\n  padding: 10px 12px;\n  cursor: pointer;\n  font-size: 0.95rem;\n  color: var(--db3-ink);\n  transition: background 0.15s, border-color 0.15s, transform 0.1s;\n}\n.dangdai-b1l3-vocab-embed .db3-tile .db3-tile-py {\n  display: block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: var(--db3-sage);\n  margin-top: 2px;\n}\n.dangdai-b1l3-vocab-embed .db3-tile:hover:not(.db3-matched):not(.db3-selected) { border-color: var(--db3-mustard); }\n.dangdai-b1l3-vocab-embed .db3-tile.db3-selected { border-color: var(--db3-oxblood); background: var(--db3-bone); }\n.dangdai-b1l3-vocab-embed .db3-tile.db3-matched { border-color: var(--db3-sage); background: #eef2e9; color: var(--db3-sage); cursor: default; }\n.dangdai-b1l3-vocab-embed .db3-tile.db3-wrong { border-color: #b5453d; background: #fbeceb; animation: db3-shake 0.3s; }\n@keyframes db3-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }\n.dangdai-b1l3-vocab-embed .db3-game-win { text-align: center; padding: 14px; font-family: 'Bitter', serif; color: var(--db3-oxblood-dark); display: none; }\n.dangdai-b1l3-vocab-embed .db3-game-win.db3-show { display: block; }\n@media (max-width: 480px) { .dangdai-b1l3-vocab-embed .db3-game-board { grid-template-columns: 1fr; } }\n.dangdai-b1l3-vocab-embed .db3-quiz { background: #fff; border: 1px solid var(--db3-line); border-radius: 12px; padding: 20px 22px; margin-top: 8px; }\n.dangdai-b1l3-vocab-embed .db3-quiz-progress { font-size: 0.82rem; color: var(--db3-sage); margin: 0 0 10px; font-family: 'IBM Plex Mono', monospace; }\n.dangdai-b1l3-vocab-embed .db3-quiz-prompt { font-size: 1.1rem; margin: 0 0 14px; }\n.dangdai-b1l3-vocab-embed .db3-quiz-options { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; }\n.dangdai-b1l3-vocab-embed .db3-quiz-opt { text-align: left; border: 1px solid var(--db3-line); background: var(--db3-bone); border-radius: 8px; padding: 10px 14px; cursor: pointer; font-size: 0.98rem; color: var(--db3-ink); }\n.dangdai-b1l3-vocab-embed .db3-quiz-opt:hover { background: #f0e6d2; }\n.dangdai-b1l3-vocab-embed .db3-quiz-opt.correct { background: #e3efdd; border-color: #7fae6d; color: #3d5c34; }\n.dangdai-b1l3-vocab-embed .db3-quiz-opt.incorrect { background: #f5e0dc; border-color: var(--db3-oxblood); color: var(--db3-oxblood-dark); }\n.dangdai-b1l3-vocab-embed .db3-quiz-opt[disabled] { cursor: default; }\n.dangdai-b1l3-vocab-embed .db3-quiz-input-row { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }\n.dangdai-b1l3-vocab-embed .db3-quiz-input { flex: 1 1 200px; border: 1px solid var(--db3-line); border-radius: 8px; padding: 9px 12px; font-size: 0.98rem; }\n.dangdai-b1l3-vocab-embed .db3-quiz-submit, .dangdai-b1l3-vocab-embed .db3-quiz-next, .dangdai-b1l3-vocab-embed .db3-quiz-retake { border: none; background: var(--db3-oxblood); color: #fff; border-radius: 20px; padding: 8px 18px; font-size: 0.9rem; cursor: pointer; }\n.dangdai-b1l3-vocab-embed .db3-quiz-submit:hover, .dangdai-b1l3-vocab-embed .db3-quiz-next:hover, .dangdai-b1l3-vocab-embed .db3-quiz-retake:hover { background: var(--db3-oxblood-dark); }\n.dangdai-b1l3-vocab-embed .db3-quiz-feedback { font-size: 0.95rem; margin: 0 0 10px; min-height: 1.4em; }\n.dangdai-b1l3-vocab-embed .db3-quiz-feedback.correct { color: #3d5c34; }\n.dangdai-b1l3-vocab-embed .db3-quiz-feedback.incorrect { color: var(--db3-oxblood-dark); }\n.dangdai-b1l3-vocab-embed .db3-quiz-score { text-align: center; }\n.dangdai-b1l3-vocab-embed .db3-quiz-score .db3-quiz-score-num { font-size: 2.2rem; font-weight: 700; color: var(--db3-oxblood-dark); display: block; margin-bottom: 8px; font-family: 'Bitter', serif; }\n<\/style>\n\n<p class=\"db3-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=\"db3-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> Book 1 \u00b7 Lesson 3\u300c<span class=\"lang-zh-TW\">\u9031\u672b\u505a\u4ec0\u9ebc\uff1f<\/span><span class=\"lang-zh-CN\">\u5468\u672b\u505a\u4ec0\u4e48\uff1f<\/span>\u300dWhat Are You Doing Over the Weekend?<\/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 (built only from Lesson 1 + Lesson 2 + Lesson 3 vocabulary), segmented word by word.\n<\/p>\n\n<div class=\"db3-sec-eyebrow\">00 \u2014 PEOPLE IN THE DIALOGUE \u4eba\u7269<\/div>\n<div id=\"db3-people-list\"><\/div>\n\n<div class=\"db3-sec-eyebrow\">01 \u2014 VOCABULARY I \u751f\u8a5e\u4e00<\/div>\n<div id=\"db3-word-list-1\"><\/div>\n\n<div class=\"db3-sec-eyebrow\">02 \u2014 PHRASES I \u8a5e\u7d44<\/div>\n<div id=\"db3-word-list-2\"><\/div>\n\n<div class=\"db3-sec-eyebrow\">03 \u2014 VOCABULARY II \u751f\u8a5e\u4e8c<\/div>\n<div id=\"db3-word-list-3\"><\/div>\n\n<div class=\"db3-sec-eyebrow\">04 \u2014 NAMES &amp; PHRASES II<\/div>\n<div id=\"db3-word-list-4\"><\/div>\n\n<div class=\"db3-sec-eyebrow\">05 \u2014 PUT IT TOGETHER \u5c0d\u8a71\u7df4\u7fd2<\/div>\n<p class=\"db3-dialogue-note\"><em>Note: this dialogue is NOT from the textbook \u2014 the textbook&#8217;s own Dialogue I and Dialogue II are copyrighted, so I wrote a short original conversation below using only vocabulary from Lesson 1 + Lesson 2 + Lesson 3, so you can see the words used together. For the real Lesson 3 dialogues, please use your own copy of the textbook.<\/em><\/p>\n<div class=\"db3-dialogue\" id=\"db3-dialogue\"><\/div>\n\n<div class=\"db3-sec-eyebrow\">06 \u2014 FLASHCARDS<\/div>\n<p class=\"db3-fc-hint\">Tap the card to flip it, then use the arrows to move through the deck.<\/p>\n<div class=\"db3-flashcard-wrap\">\n  <div class=\"db3-flashcard\" id=\"db3-flashcard\">\n    <div class=\"db3-fc-face db3-fc-front\" id=\"db3-fc-front\"><\/div>\n    <div class=\"db3-fc-face db3-fc-back\" id=\"db3-fc-back\"><\/div>\n  <\/div>\n<\/div>\n<div class=\"db3-flashcard-controls\">\n  <button class=\"db3-game-btn\" id=\"db3-fc-prev\">\u2039 Prev<\/button>\n  <span class=\"db3-game-status\" id=\"db3-fc-progress\">1 \/ 40<\/span>\n  <button class=\"db3-game-btn\" id=\"db3-fc-next\">Next \u203a<\/button>\n<\/div>\n\n<div class=\"db3-sec-eyebrow\">07 \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=\"db3-game-bar\">\n  <button class=\"db3-game-btn\" id=\"db3-game-new\">New Round<\/button>\n  <span class=\"db3-game-status\" id=\"db3-game-status\">0 \/ 8 matched<\/span>\n<\/div>\n<div class=\"db3-game-board\">\n  <div class=\"db3-game-col\" id=\"db3-game-col-zh\"><\/div>\n  <div class=\"db3-game-col\" id=\"db3-game-col-en\"><\/div>\n<\/div>\n<div class=\"db3-game-win\" id=\"db3-game-win\">\ud83c\udf89 All matched! Nice work.<\/div>\n\n<div class=\"db3-sec-eyebrow\">08 \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=\"db3-quiz\" id=\"db3-quiz\"><\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('dangdai-b1l3-vocab-embed-2');\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 PEOPLE = [\n    { t: '\u767d\u5982\u7389', s: '\u767d\u5982\u7389', p: 'B\u00e1i R\u00fay\u00f9', meaning: 'a woman from the US' }\n  ];\n\n  \/\/ Every example sentence below uses ONLY vocabulary confirmed to be in\n  \/\/ Lesson 1, Lesson 2, or Lesson 3's word list.\n  var GROUPS = {\n    'db3-word-list-1': [\n      { t: '\u9031\u672b', s: '\u5468\u672b', p: 'zh\u014dum\u00f2', pos: 'N', meaning: 'weekend',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u505a\u4ec0\u9ebc','\u505a\u4ec0\u4e48','zu\u00f2 sh\u00e9nme'), '\uff1f'],\n        exEn: 'What do you want to do this weekend?' },\n      { t: '\u807d', s: '\u542c', p: 't\u012bng', pos: 'V', meaning: 'to listen',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u807d','\u542c','t\u012bng'), W('\u97f3\u6a02','\u97f3\u4e50','y\u012bnyu\u00e8'), '\u3002'],\n        exEn: 'I like listening to music.' },\n      { t: '\u97f3\u6a02', s: '\u97f3\u4e50', p: 'y\u012bnyu\u00e8', pos: 'N', meaning: 'music',\n        ex: [W('\u4ed6','\u4ed6','T\u0101'), W('\u5f88','\u5f88','h\u011bn'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u807d','\u542c','t\u012bng'), W('\u97f3\u6a02','\u97f3\u4e50','y\u012bnyu\u00e8'), '\u3002'],\n        exEn: 'He really likes listening to music.' },\n      { t: '\u904b\u52d5', s: '\u8fd0\u52a8', p: 'y\u00f9nd\u00f2ng', pos: 'Vi', meaning: 'to exercise',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), W('\u5e38','\u5e38','ch\u00e1ng'), W('\u904b\u52d5','\u8fd0\u52a8','y\u00f9nd\u00f2ng'), '\u3002'],\n        exEn: 'I often exercise on weekends.' },\n      { t: '\u6253', s: '\u6253', p: 'd\u01ce', pos: 'V', meaning: 'to play (ball games)',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6253','\u6253','d\u01ce'), W('\u7c43\u7403','\u7bee\u7403','l\u00e1nqi\u00fa'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Do you like playing basketball?' },\n      { t: '\u7db2\u7403', s: '\u7f51\u7403', p: 'w\u01cengqi\u00fa', pos: 'N', meaning: 'tennis',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e0d','\u4e0d','b\u00f9'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6253','\u6253','d\u01ce'), W('\u7db2\u7403','\u7f51\u7403','w\u01cengqi\u00fa'), '\u3002'],\n        exEn: \"I don't like playing tennis.\" },\n      { t: '\u68d2\u7403', s: '\u68d2\u7403', p: 'b\u00e0ngqi\u00fa', pos: 'N', meaning: 'baseball',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6253','\u6253','d\u01ce'), W('\u68d2\u7403','\u68d2\u7403','b\u00e0ngqi\u00fa'), W('\u548c','\u548c','h\u00e0n'), W('\u6e38\u6cf3','\u6e38\u6cf3','y\u00f3uy\u01d2ng'), '\u3002'],\n        exEn: 'I like playing baseball and swimming.' },\n      { t: '\u548c', s: '\u548c', p: 'h\u00e0n', pos: 'Conj', meaning: 'and, as well as',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), W('\u8336','\u8336','ch\u00e1'), W('\u548c','\u548c','h\u00e0n'), W('\u5496\u5561','\u5496\u5561','k\u0101f\u0113i'), '\u3002'],\n        exEn: 'This is tea and coffee.' },\n      { t: '\u6e38\u6cf3', s: '\u6e38\u6cf3', p: 'y\u00f3uy\u01d2ng', pos: 'V-sep', meaning: 'to swim',\n        ex: [W('\u660e\u5929','\u660e\u5929','M\u00edngti\u0101n'), W('\u65e9\u4e0a','\u65e9\u4e0a','z\u01ceosh\u00e0ng'), W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u6e38\u6cf3','\u6e38\u6cf3','y\u00f3uy\u01d2ng'), '\uff0c', W('\u600e\u9ebc\u6a23','\u600e\u4e48\u6837','z\u011bnmey\u00e0ng'), '\uff1f'],\n        exEn: \"Let's go swimming tomorrow morning, how about it?\" },\n      { t: '\u5e38', s: '\u5e38', p: 'ch\u00e1ng', pos: 'Adv', meaning: 'often',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u5e38','\u5e38','ch\u00e1ng'), W('\u6253','\u6253','d\u01ce'), W('\u7c43\u7403','\u7bee\u7403','l\u00e1nqi\u00fa'), '\uff0c', W('\u4e5f','\u4e5f','y\u011b'), W('\u5e38','\u5e38','ch\u00e1ng'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), '\u3002'],\n        exEn: 'I often play basketball, and I also often play soccer.' },\n      { t: '\u7c43\u7403', s: '\u7bee\u7403', p: 'l\u00e1nqi\u00fa', pos: 'N', meaning: 'basketball',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u5f88','\u5f88','h\u011bn'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6253','\u6253','d\u01ce'), W('\u7c43\u7403','\u7bee\u7403','l\u00e1nqi\u00fa'), '\u3002'],\n        exEn: 'We really like playing basketball.' },\n      { t: '\u4e5f', s: '\u4e5f', p: 'y\u011b', pos: 'Adv', meaning: 'also',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6253','\u6253','d\u01ce'), W('\u68d2\u7403','\u68d2\u7403','b\u00e0ngqi\u00fa'), '\uff0c', W('\u4e5f','\u4e5f','y\u011b'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6e38\u6cf3','\u6e38\u6cf3','y\u00f3uy\u01d2ng'), '\u3002'],\n        exEn: 'I like playing baseball, and I also like swimming.' },\n      { t: '\u8e22', s: '\u8e22', p: 't\u012b', pos: 'V', meaning: 'to kick',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u89ba\u5f97','\u89c9\u5f97','ju\u00e9de'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u73a9','\u597d\u73a9','h\u01ceow\u00e1n'), '\u3002'],\n        exEn: 'I think playing soccer is fun.' },\n      { t: '\u8db3\u7403', s: '\u8db3\u7403', p: 'z\u00faqi\u00fa', pos: 'N', meaning: 'soccer',\n        ex: [W('\u660e\u5929','\u660e\u5929','M\u00edngti\u0101n'), W('\u662f','\u662f','sh\u00ec'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u65e9\u4e0a','\u65e9\u4e0a','z\u01ceosh\u00e0ng'), W('\u53bb','\u53bb','q\u00f9'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), '\uff0c', W('\u600e\u9ebc\u6a23','\u600e\u4e48\u6837','z\u011bnmey\u00e0ng'), '\uff1f'],\n        exEn: \"Tomorrow is the weekend \u2014 let's go play soccer in the morning, how about it?\" },\n      { t: '\u89ba\u5f97', s: '\u89c9\u5f97', p: 'ju\u00e9de', pos: 'Vst', meaning: 'to feel, to think',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u89ba\u5f97','\u89c9\u5f97','ju\u00e9de'), W('\u7c43\u7403','\u7bee\u7403','l\u00e1nqi\u00fa'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u73a9','\u597d\u73a9','h\u01ceow\u00e1n'), '\u3002'],\n        exEn: 'I think basketball is fun.' },\n      { t: '\u597d\u73a9', s: '\u597d\u73a9', p: 'h\u01ceow\u00e1n', pos: 'Vs', meaning: 'interesting, fun',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u89ba\u5f97','\u89c9\u5f97','ju\u00e9de'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u73a9','\u597d\u73a9','h\u01ceow\u00e1n'), '\u3002'],\n        exEn: 'I think playing soccer is fun.' },\n      { t: '\u660e\u5929', s: '\u660e\u5929', p: 'm\u00edngti\u0101n', pos: 'N', meaning: 'tomorrow',\n        ex: [W('\u660e\u5929','\u660e\u5929','M\u00edngti\u0101n'), W('\u662f','\u662f','sh\u00ec'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), '\u3002'],\n        exEn: 'Tomorrow is the weekend.' },\n      { t: '\u65e9\u4e0a', s: '\u65e9\u4e0a', p: 'z\u01ceosh\u00e0ng', pos: 'N', meaning: 'morning',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u65e9\u4e0a','\u65e9\u4e0a','z\u01ceosh\u00e0ng'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u53bb','\u53bb','q\u00f9'), W('\u6e38\u6cf3','\u6e38\u6cf3','y\u00f3uy\u01d2ng'), '\u3002'],\n        exEn: 'I want to go swimming in the morning.' },\n      { t: '\u53bb', s: '\u53bb', p: 'q\u00f9', pos: 'V', meaning: 'to go',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u6253','\u6253','d\u01ce'), W('\u68d2\u7403','\u68d2\u7403','b\u00e0ngqi\u00fa'), '\uff0c', W('\u597d\u4e0d\u597d','\u597d\u4e0d\u597d','h\u01ceob\u00f9h\u01ceo'), '\uff1f'],\n        exEn: \"Let's go play baseball, okay?\" },\n      { t: '\u600e\u9ebc\u6a23', s: '\u600e\u4e48\u6837', p: 'z\u011bnmey\u00e0ng', pos: 'Vs', meaning: 'How about it? How does that sound? What do you think?',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u65e9\u4e0a','\u65e9\u4e0a','z\u01ceosh\u00e0ng'), W('\u53bb','\u53bb','q\u00f9'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), '\uff0c', W('\u600e\u9ebc\u6a23','\u600e\u4e48\u6837','z\u011bnmey\u00e0ng'), '\uff1f'],\n        exEn: \"Let's go play soccer in the morning, how about it?\" },\n      { t: '\u554a', s: '\u554a', p: 'a', pos: 'Ptc', meaning: 'sentence-final particle',\n        ex: [W('\u597d','\u597d','H\u01ceo'), W('\u554a','\u554a','a'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u5f88','\u5f88','h\u011bn'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u53bb','\u53bb','q\u00f9'), '\uff01'],\n        exEn: \"Sure! I'd really like to go!\" }\n    ],\n    'db3-word-list-2': [\n      { t: '\u505a\u4ec0\u9ebc', s: '\u505a\u4ec0\u4e48', p: 'zu\u00f2 sh\u00e9nme', pos: 'Phrase', meaning: 'do what',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u505a\u4ec0\u9ebc','\u505a\u4ec0\u4e48','zu\u00f2 sh\u00e9nme'), '\uff1f'],\n        exEn: 'What do you like to do?' },\n      { t: '\u597d\u554a', s: '\u597d\u554a', p: 'h\u01ceo a', pos: 'Phrase', meaning: 'OK',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u6253','\u6253','d\u01ce'), W('\u68d2\u7403','\u68d2\u7403','b\u00e0ngqi\u00fa'), '\uff0c', W('\u597d\u554a','\u597d\u554a','h\u01ceo a'), '\uff01'],\n        exEn: \"Let's go play baseball \u2014 sure!\" }\n    ],\n    'db3-word-list-3': [\n      { t: '\u4eca\u5929', s: '\u4eca\u5929', p: 'j\u012bnti\u0101n', pos: 'N', meaning: 'today',\n        ex: [W('\u4eca\u5929','\u4eca\u5929','J\u012bnti\u0101n'), W('\u665a\u4e0a','\u665a\u4e0a','w\u01censh\u00e0ng'), W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\uff0c', W('\u597d\u4e0d\u597d','\u597d\u4e0d\u597d','h\u01ceob\u00f9h\u01ceo'), '\uff1f'],\n        exEn: \"Let's go watch a movie tonight, okay?\" },\n      { t: '\u665a\u4e0a', s: '\u665a\u4e0a', p: 'w\u01censh\u00e0ng', pos: 'N', meaning: 'evening, night',\n        ex: [W('\u665a\u4e0a','\u665a\u4e0a','W\u01censh\u00e0ng'), W('\u6211','\u6211','w\u01d2'), W('\u5e38','\u5e38','ch\u00e1ng'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\u3002'],\n        exEn: 'I often watch movies in the evening.' },\n      { t: '\u770b', s: '\u770b', p: 'k\u00e0n', pos: 'V', meaning: 'to see, to watch',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u770b','\u770b','k\u00e0n'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), '\uff1f'],\n        exEn: 'What do you want to watch this weekend?' },\n      { t: '\u96fb\u5f71', s: '\u7535\u5f71', p: 'di\u00e0ny\u01d0ng', pos: 'N', meaning: 'movie',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), W('\u5e38','\u5e38','ch\u00e1ng'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\u3002'],\n        exEn: 'I often watch movies on weekends.' },\n      { t: '\u59b3', s: '\u59b3', p: 'n\u01d0', pos: 'N', meaning: 'you (female)',\n        ex: [W('\u59b3','\u59b3','N\u01d0'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Do you want to watch a movie?' },\n      { t: '\u60f3', s: '\u60f3', p: 'xi\u01ceng', pos: 'Vaux', meaning: 'to want, to think',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u53bb','\u53bb','q\u00f9'), W('\u6e38\u6cf3','\u6e38\u6cf3','y\u00f3uy\u01d2ng'), '\u3002'],\n        exEn: 'I want to go swimming.' },\n      { t: '\u9084\u662f', s: '\u8fd8\u662f', p: 'h\u00e1ish\u00ec', pos: 'Conj', meaning: 'or (used in a question)',\n        ex: [W('\u59b3','\u59b3','N\u01d0'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u770b','\u770b','k\u00e0n'), W('\u7f8e\u570b','\u7f8e\u56fd','M\u011bigu\u00f3'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u9084\u662f','\u8fd8\u662f','h\u00e1ish\u00ec'), W('\u81fa\u7063','\u53f0\u6e7e','T\u00e1iw\u0101n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\uff1f'],\n        exEn: 'Do you want to watch an American movie or a Taiwanese movie?' },\n      { t: '\u5427', s: '\u5427', p: 'ba', pos: 'Ptc', meaning: 'sentence-final particle for suggestion',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u770b','\u770b','k\u00e0n'), W('\u81fa\u7063','\u53f0\u6e7e','T\u00e1iw\u0101n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u5427','\u5427','ba'), '\uff01'],\n        exEn: \"Let's watch a Taiwanese movie!\" },\n      { t: '\u53ef\u4ee5', s: '\u53ef\u4ee5', p: 'k\u011by\u01d0', pos: 'Vaux', meaning: 'could (possibility)',\n        ex: [W('\u770b','\u770b','K\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u5b78','\u5b66','xu\u00e9'), W('\u4e2d\u6587','\u4e2d\u6587','Zh\u014dngw\u00e9n'), '\u3002'],\n        exEn: 'Watching movies lets you learn Chinese.' },\n      { t: '\u5b78', s: '\u5b66', p: 'xu\u00e9', pos: 'V', meaning: 'to learn, to study',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u5b78','\u5b66','xu\u00e9'), W('\u4e2d\u6587','\u4e2d\u6587','Zh\u014dngw\u00e9n'), '\u3002'],\n        exEn: 'I want to learn Chinese.' },\n      { t: '\u4e2d\u6587', s: '\u4e2d\u6587', p: 'Zh\u014dngw\u00e9n', pos: 'N', meaning: 'Chinese language',\n        ex: [W('\u770b','\u770b','K\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u5b78','\u5b66','xu\u00e9'), W('\u4e2d\u6587','\u4e2d\u6587','Zh\u014dngw\u00e9n'), '\u3002'],\n        exEn: 'Watching movies lets you learn Chinese.' },\n      { t: '\u4e00\u8d77', s: '\u4e00\u8d77', p: 'y\u00ecq\u01d0', pos: 'Adv', meaning: 'together',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), W('\u665a\u98ef','\u665a\u996d','w\u01cenf\u00e0n'), '\uff0c', W('\u597d\u4e0d\u597d','\u597d\u4e0d\u597d','h\u01ceob\u00f9h\u01ceo'), '\uff1f'],\n        exEn: \"Let's go have dinner together, okay?\" },\n      { t: '\u5403', s: '\u5403', p: 'ch\u012b', pos: 'V', meaning: 'to eat',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), W('\u8d8a\u5357','\u8d8a\u5357','Yu\u00e8n\u00e1n'), W('\u83dc','\u83dc','c\u00e0i'), '\u3002'],\n        exEn: \"Let's go eat Vietnamese food.\" },\n      { t: '\u665a\u98ef', s: '\u665a\u996d', p: 'w\u01cenf\u00e0n', pos: 'N', meaning: 'dinner',\n        ex: [W('\u665a\u4e0a','\u665a\u4e0a','W\u01censh\u00e0ng'), W('\u8981','\u8981','y\u00e0o'), W('\u4e0d','\u4e0d','b\u00fa'), W('\u8981','\u8981','y\u00e0o'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u5403','\u5403','ch\u012b'), W('\u665a\u98ef','\u665a\u996d','w\u01cenf\u00e0n'), '\uff1f'],\n        exEn: 'Would you like to have dinner together tonight?' },\n      { t: '\u83dc', s: '\u83dc', p: 'c\u00e0i', pos: 'N', meaning: 'cuisine',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), W('\u8d8a\u5357','\u8d8a\u5357','Yu\u00e8n\u00e1n'), W('\u83dc','\u83dc','c\u00e0i'), '\u3002'],\n        exEn: \"Let's go eat Vietnamese food.\" }\n    ],\n    'db3-word-list-4': [\n      { t: '\u8d8a\u5357', s: '\u8d8a\u5357', p: 'Yu\u00e8n\u00e1n', pos: 'Names', meaning: 'Vietnam',\n        ex: [W('\u9673','\u9648','Ch\u00e9n'), W('\u5c0f\u59d0','\u5c0f\u59d0','xi\u01ceoji\u011b'), W('\u662f','\u662f','sh\u00ec'), W('\u8d8a\u5357','\u8d8a\u5357','Yu\u00e8n\u00e1n'), W('\u4eba','\u4eba','r\u00e9n'), '\u3002'],\n        exEn: 'Miss Chen is Vietnamese.' },\n      { t: '\u597d\u4e0d\u597d', s: '\u597d\u4e0d\u597d', p: 'h\u01ceob\u00f9h\u01ceo', pos: 'Phrase', meaning: 'How about\u2026? How does that sound?',\n        ex: [W('\u6211\u5011','\u6211\u4eec','W\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\uff0c', W('\u597d\u4e0d\u597d','\u597d\u4e0d\u597d','h\u01ceob\u00f9h\u01ceo'), '\uff1f'],\n        exEn: \"Let's go watch a movie, okay?\" }\n    ]\n  };\n\n  \/\/ Original dialogue (NOT from the textbook), using only Lesson 1+2+3 vocabulary\n  var DIALOGUE = [\n    { speakerT: '\u958b\u6587', speakerS: '\u5f00\u6587',\n      tokens: [W('\u5982\u7389','\u5982\u7389','R\u00fay\u00f9'), '\uff0c', W('\u4f60','\u4f60','n\u01d0'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u505a\u4ec0\u9ebc','\u505a\u4ec0\u4e48','zu\u00f2 sh\u00e9nme'), '\uff1f'],\n      en: 'Ruyu, what do you want to do this weekend?' },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u904b\u52d5','\u8fd0\u52a8','y\u00f9nd\u00f2ng'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u5e38','\u5e38','ch\u00e1ng'), W('\u6253','\u6253','d\u01ce'), W('\u7db2\u7403','\u7f51\u7403','w\u01cengqi\u00fa'), '\u3002', W('\u4f60','\u4f60','N\u01d0'), W('\u5462','\u5462','ne'), '\uff1f'],\n      en: \"I like exercising, I often play tennis. And you?\" },\n    { speakerT: '\u958b\u6587', speakerS: '\u5f00\u6587',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u4e0d','\u4e0d','b\u00f9'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u6253','\u6253','d\u01ce'), W('\u7db2\u7403','\u7f51\u7403','w\u01cengqi\u00fa'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u89ba\u5f97','\u89c9\u5f97','ju\u00e9de'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u73a9','\u597d\u73a9','h\u01ceow\u00e1n'), '\u3002'],\n      en: \"I don't like tennis \u2014 I like playing soccer, I think it's really fun.\" },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u660e\u5929','\u660e\u5929','M\u00edngti\u0101n'), W('\u65e9\u4e0a','\u65e9\u4e0a','z\u01ceosh\u00e0ng'), W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u53bb','\u53bb','q\u00f9'), W('\u8e22','\u8e22','t\u012b'), W('\u8db3\u7403','\u8db3\u7403','z\u00faqi\u00fa'), '\uff0c', W('\u597d\u4e0d\u597d','\u597d\u4e0d\u597d','h\u01ceob\u00f9h\u01ceo'), '\uff1f'],\n      en: \"Let's go play soccer together tomorrow morning, okay?\" },\n    { speakerT: '\u958b\u6587', speakerS: '\u5f00\u6587',\n      tokens: [W('\u597d\u554a','\u597d\u554a','H\u01ceo a'), '\uff01', W('\u59b3','\u59b3','N\u01d0'), W('\u665a\u4e0a','\u665a\u4e0a','w\u01censh\u00e0ng'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u4e0d','\u4e0d','b\u00f9'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u770b','\u770b','k\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), '\uff1f'],\n      en: 'Great! Do you want to watch a movie tonight?' },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u60f3','\u60f3','Xi\u01ceng'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u770b','\u770b','k\u00e0n'), W('\u81fa\u7063','\u53f0\u6e7e','T\u00e1iw\u0101n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u5427','\u5427','ba'), '\uff01', W('\u770b','\u770b','K\u00e0n'), W('\u96fb\u5f71','\u7535\u5f71','di\u00e0ny\u01d0ng'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u5b78','\u5b66','xu\u00e9'), W('\u4e2d\u6587','\u4e2d\u6587','Zh\u014dngw\u00e9n'), '\u3002'],\n      en: \"Sure, let's watch a Taiwanese movie! Watching movies lets you learn Chinese.\" },\n    { speakerT: '\u958b\u6587', speakerS: '\u5f00\u6587',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), W('\u665a\u98ef','\u665a\u996d','w\u01cenf\u00e0n'), '\uff0c', W('\u597d\u4e0d\u597d','\u597d\u4e0d\u597d','h\u01ceob\u00f9h\u01ceo'), '\uff1f'],\n      en: \"OK, let's go have dinner together too, alright?\" },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), W('\u8d8a\u5357','\u8d8a\u5357','Yu\u00e8n\u00e1n'), W('\u83dc','\u83dc','c\u00e0i'), '\u3002'],\n      en: \"Sure, let's go eat Vietnamese food.\" }\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=\"db3-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=\"db3-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 peopleEl = root.querySelector('#db3-people-list');\n  if (peopleEl) {\n    var pHtml = '';\n    PEOPLE.forEach(function (p) {\n      pHtml += '<div class=\"db3-people-card\">' +\n        '<span class=\"db3-hanzi\">' + headwordRuby(p.t, p.s, p.p, p.p) + '<\/span>' +\n        '<span class=\"db3-meaning\">' + p.meaning + '<\/span>' +\n      '<\/div>';\n    });\n    peopleEl.innerHTML = pHtml;\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=\"db3-word-card\">' +\n        '<div class=\"db3-word-top\">' +\n          '<span class=\"db3-num\">' + num + '<\/span>' +\n          '<span class=\"db3-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>' +\n          '<span class=\"db3-pos\">' + w.pos + '<\/span>' +\n          '<span class=\"db3-meaning\">' + w.meaning + '<\/span>' +\n          '<button class=\"db3-speaker\" data-trad=\"' + w.t + '\" data-simp=\"' + w.s + '\" aria-label=\"Play pronunciation\">' + SPEAKER_SVG + '<\/button>' +\n        '<\/div>' +\n        '<div class=\"db3-example\">' +\n          renderTokens(w.ex) +\n          '<span class=\"db3-en\">' + w.exEn + '<\/span>' +\n        '<\/div>' +\n      '<\/div>';\n    });\n    container.innerHTML = html;\n  });\n\n  var dialogueEl = root.querySelector('#db3-dialogue');\n  if (dialogueEl) {\n    var dHtml = '';\n    DIALOGUE.forEach(function (line) {\n      dHtml += '<div class=\"db3-line\">' +\n        '<span class=\"db3-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=\"db3-line-body\">' +\n          renderTokens(line.tokens) +\n          '<span class=\"db3-line-en\">' + line.en + '<\/span>' +\n        '<\/span>' +\n      '<\/div>';\n    });\n    dialogueEl.innerHTML = dHtml;\n  }\n\n  \/\/ ---- Flashcards ----\n  var fcCard = root.querySelector('#db3-flashcard');\n  var fcFront = root.querySelector('#db3-fc-front');\n  var fcBack = root.querySelector('#db3-fc-back');\n  var fcProgress = root.querySelector('#db3-fc-progress');\n  var fcPrevBtn = root.querySelector('#db3-fc-prev');\n  var fcNextBtn = root.querySelector('#db3-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=\"db3-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>';\n    fcBack.innerHTML = '<span class=\"db3-meaning\">' + w.meaning + '<\/span><span class=\"db3-pos\">' + w.pos + '<\/span>';\n    if (fcProgress) fcProgress.textContent = (fcIndex + 1) + ' \/ ' + ALL_WORDS.length;\n    if (fcCard) fcCard.classList.remove('db3-flipped');\n    fcFlipped = false;\n  }\n\n  if (fcCard) {\n    fcCard.addEventListener('click', function () {\n      fcFlipped = !fcFlipped;\n      fcCard.classList.toggle('db3-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('#db3-game-col-zh');\n  var gameColEn = root.querySelector('#db3-game-col-en');\n  var gameStatus = root.querySelector('#db3-game-status');\n  var gameWin = root.querySelector('#db3-game-win');\n  var gameNewBtn = root.querySelector('#db3-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('db3-show');\n\n    var zhOrder = shuffle(gameRound);\n    var enOrder = shuffle(gameRound);\n\n    gameColZh.innerHTML = zhOrder.map(function (w) {\n      return '<button class=\"db3-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=\"db3-tile-py\">' + (w.pt || w.p) + '<\/span>' +\n      '<\/button>';\n    }).join('');\n\n    gameColEn.innerHTML = enOrder.map(function (w) {\n      return '<button class=\"db3-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('db3-matched')) return;\n    var side = tile.getAttribute('data-side');\n\n    if (side === 'zh') {\n      if (gameSelectedZh) gameSelectedZh.classList.remove('db3-selected');\n      gameSelectedZh = tile;\n      tile.classList.add('db3-selected');\n    } else {\n      if (gameSelectedEn) gameSelectedEn.classList.remove('db3-selected');\n      gameSelectedEn = tile;\n      tile.classList.add('db3-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('db3-selected');\n          gameSelectedEn.classList.remove('db3-selected');\n          gameSelectedZh.classList.add('db3-matched');\n          gameSelectedEn.classList.add('db3-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('db3-show');\n            }\n          }\n        } else {\n          gameBusy = true;\n          var z = gameSelectedZh, en = gameSelectedEn;\n          z.classList.add('db3-wrong');\n          en.classList.add('db3-wrong');\n          setTimeout(function () {\n            z.classList.remove('db3-selected', 'db3-wrong');\n            en.classList.remove('db3-selected', 'db3-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('.db3-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\">\u904b\u52d5<\/span><span class=\"lang-zh-CN\">\u8fd0\u52a8<\/span> means...', options: ['to exercise', 'to swim', 'to kick', 'to play (ball games)'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u7c43\u7403<\/span><span class=\"lang-zh-CN\">\u7bee\u7403<\/span>.', accept: ['lanqiu'] },\n    { type: 'mc', prompt: 'Which word means \"soccer\"?', options: ['<span class=\"lang-zh-TW\">\u8db3\u7403<\/span><span class=\"lang-zh-CN\">\u8db3\u7403<\/span>', '<span class=\"lang-zh-TW\">\u7db2\u7403<\/span><span class=\"lang-zh-CN\">\u7f51\u7403<\/span>', '<span class=\"lang-zh-TW\">\u68d2\u7403<\/span><span class=\"lang-zh-CN\">\u68d2\u7403<\/span>', '<span class=\"lang-zh-TW\">\u7c43\u7403<\/span><span class=\"lang-zh-CN\">\u7bee\u7403<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u89ba\u5f97<\/span><span class=\"lang-zh-CN\">\u89c9\u5f97<\/span>.', accept: ['feel', 'think', 'to feel', 'to think'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u597d\u73a9<\/span><span class=\"lang-zh-CN\">\u597d\u73a9<\/span> means...', options: ['fun, interesting', 'often', 'together', 'to learn'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u600e\u9ebc\u6a23<\/span><span class=\"lang-zh-CN\">\u600e\u4e48\u6837<\/span>.', accept: ['zenmeyang'] },\n    { type: 'mc', prompt: 'Which word means \"you\" said to a woman?', options: ['<span class=\"lang-zh-TW\">\u59b3<\/span><span class=\"lang-zh-CN\">\u59b3<\/span>', '<span class=\"lang-zh-TW\">\u4f60<\/span><span class=\"lang-zh-CN\">\u4f60<\/span>', '<span class=\"lang-zh-TW\">\u60a8<\/span><span class=\"lang-zh-CN\">\u60a8<\/span>', '<span class=\"lang-zh-TW\">\u4f60\u5011<\/span><span class=\"lang-zh-CN\">\u4f60\u4eec<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u9084\u662f<\/span><span class=\"lang-zh-CN\">\u8fd8\u662f<\/span>.', accept: ['or'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u53ef\u4ee5<\/span><span class=\"lang-zh-CN\">\u53ef\u4ee5<\/span> means...', options: ['could (possibility)', 'to want to', 'to learn', 'together'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u4e2d\u6587<\/span><span class=\"lang-zh-CN\">\u4e2d\u6587<\/span>.', accept: ['zhongwen'] },\n    { type: 'mc', prompt: 'Which word means \"dinner\"?', options: ['<span class=\"lang-zh-TW\">\u665a\u98ef<\/span><span class=\"lang-zh-CN\">\u665a\u996d<\/span>', '<span class=\"lang-zh-TW\">\u665a\u4e0a<\/span><span class=\"lang-zh-CN\">\u665a\u4e0a<\/span>', '<span class=\"lang-zh-TW\">\u4eca\u5929<\/span><span class=\"lang-zh-CN\">\u4eca\u5929<\/span>', '<span class=\"lang-zh-TW\">\u83dc<\/span><span class=\"lang-zh-CN\">\u83dc<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u4e00\u8d77<\/span><span class=\"lang-zh-CN\">\u4e00\u8d77<\/span>.', accept: ['together'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u597d\u4e0d\u597d<\/span><span class=\"lang-zh-CN\">\u597d\u4e0d\u597d<\/span> means...', options: ['How about...? \/ Is that OK?', 'OK (agreeing)', 'do what', 'together'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u8d8a\u5357<\/span><span class=\"lang-zh-CN\">\u8d8a\u5357<\/span>.', accept: ['yuenan'] },\n    { type: 'mc', prompt: 'Which word means \"and, as well as\"?', options: ['<span class=\"lang-zh-TW\">\u548c<\/span><span class=\"lang-zh-CN\">\u548c<\/span>', '<span class=\"lang-zh-TW\">\u4e5f<\/span><span class=\"lang-zh-CN\">\u4e5f<\/span>', '<span class=\"lang-zh-TW\">\u9084\u662f<\/span><span class=\"lang-zh-CN\">\u8fd8\u662f<\/span>', '<span class=\"lang-zh-TW\">\u548c<\/span> and <span class=\"lang-zh-TW\">\u4e5f<\/span> both'], 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('#db3-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=\"db3-quiz-progress\">Question ' + (current + 1) + ' of ' + QUIZ_DATA.length + '<\/p>';\n      html += '<p class=\"db3-quiz-prompt\">' + q.prompt + '<\/p>';\n      if (q.type === 'mc') {\n        html += '<div class=\"db3-quiz-options\">';\n        for (var i = 0; i < q.options.length; i++) {\n          html += '<button type=\"button\" class=\"db3-quiz-opt\" data-i=\"' + i + '\">' + q.options[i] + '<\/button>';\n        }\n        html += '<\/div>';\n      } else {\n        html += '<div class=\"db3-quiz-input-row\">';\n        html += '<input type=\"text\" class=\"db3-quiz-input\" placeholder=\"Type your answer\">';\n        html += '<button type=\"button\" class=\"db3-quiz-submit\">Submit<\/button>';\n        html += '<\/div>';\n      }\n      html += '<p class=\"db3-quiz-feedback\"><\/p>';\n      html += '<button type=\"button\" class=\"db3-quiz-next\" style=\"display:none;\">Next<\/button>';\n      qRoot.innerHTML = html;\n\n      if (q.type === 'mc') {\n        var opts = qRoot.querySelectorAll('.db3-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('.db3-quiz-input');\n        var submitBtn = qRoot.querySelector('.db3-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('.db3-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 = 'db3-quiz-feedback ' + (correct ? 'correct' : 'incorrect');\n        var nextBtn = qRoot.querySelector('.db3-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=\"db3-quiz-score\">' +\n        '<span class=\"db3-quiz-score-num\">' + score + ' \/ ' + QUIZ_DATA.length + '<\/span>' +\n        '<p>Nice work! Want to try again?<\/p>' +\n        '<button type=\"button\" class=\"db3-quiz-retake\">Retake Quiz<\/button>' +\n        '<\/div>';\n      qRoot.querySelector('.db3-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('.db3-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-12885","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 L3 Vocabulary and Practice - OneDotDot Chinese<\/title>\n<meta name=\"description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e09\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 3\" \/>\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\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"B1 L3 Vocabulary and Practice - OneDotDot Chinese\" \/>\n<meta property=\"og:description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e09\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 3\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/\" \/>\n<meta property=\"og:site_name\" content=\"OneDotDot Chinese\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-15T16:01:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-07T21:35:50+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\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/\"},\"author\":{\"name\":\"tiffany\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"headline\":\"B1 L3 Vocabulary and Practice\",\"datePublished\":\"2025-07-15T16:01:57+00:00\",\"dateModified\":\"2026-09-07T21:35:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#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\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/\",\"name\":\"B1 L3 Vocabulary and Practice - OneDotDot Chinese\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"datePublished\":\"2025-07-15T16:01:57+00:00\",\"dateModified\":\"2026-09-07T21:35:50+00:00\",\"description\":\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e09\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 3\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#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\\\/07\\\/16\\\/contemporary-chinese-vocabulary-practice-b1l3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"B1 L3 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 L3 Vocabulary and Practice - OneDotDot Chinese","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e09\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 3","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\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/","og_locale":"en_US","og_type":"article","og_title":"B1 L3 Vocabulary and Practice - OneDotDot Chinese","og_description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e09\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 3","og_url":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/","og_site_name":"OneDotDot Chinese","article_published_time":"2025-07-15T16:01:57+00:00","article_modified_time":"2026-09-07T21:35:50+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\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#article","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/"},"author":{"name":"tiffany","@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"headline":"B1 L3 Vocabulary and Practice","datePublished":"2025-07-15T16:01:57+00:00","dateModified":"2026-09-07T21:35:50+00:00","mainEntityOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/"},"wordCount":9,"publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#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\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/","url":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/","name":"B1 L3 Vocabulary and Practice - OneDotDot Chinese","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#primaryimage"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","datePublished":"2025-07-15T16:01:57+00:00","dateModified":"2026-09-07T21:35:50+00:00","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e09\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 3","breadcrumb":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#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\/07\/16\/contemporary-chinese-vocabulary-practice-b1l3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/tiffanysmandarin.com\/"},{"@type":"ListItem","position":2,"name":"B1 L3 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\/12885","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=12885"}],"version-history":[{"count":6,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/12885\/revisions"}],"predecessor-version":[{"id":16739,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/12885\/revisions\/16739"}],"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=12885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/categories?post=12885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/tags?post=12885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}