{"id":13722,"date":"2026-06-29T18:34:32","date_gmt":"2026-06-29T10:34:32","guid":{"rendered":"https:\/\/tiffanysmandarin.com\/?p=13722"},"modified":"2026-10-11T13:25:52","modified_gmt":"2026-10-11T05:25:52","slug":"contemporary-chinese-vocabulary-practice-b2l15","status":"publish","type":"post","link":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/","title":{"rendered":"B2 L15 Vocabulary and Practice"},"content":{"rendered":"\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:33px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--\n  \u7576\u4ee3\u4e2d\u6587 Book 2 \u00b7 Lesson 15 \u300c\u904e\u6625\u7bc0\u300d Lunar New Year \u2014 Vocabulary Embed\n  Same technical pattern as the Book 1 embeds (scoped CSS --d215-*, id #dangdai-b2l15-vocab-embed-1, lang-zh-TW\/lang-zh-CN ruby\n  word-by-word, no literal double-ampersand in script, nested ifs). Vocabulary I & II transcribed from the textbook's own \u751f\u8a5e\u4e00 \/ \u751f\u8a5e\u4e8c\n  pages (Names and Phrases included) with the book's part-of-speech tags. The dialogue is an ORIGINAL conversation, not from the textbook.\n\n  PINYIN SYNC FIX: the site's Pinyin Display toggle only adds the\n  \"hidden\" \/ \"mouseover\" class to <rt> elements that exist at the moment\n  it's clicked. The flashcard (re-rendered on every Prev\/Next) and the\n  Match It tiles (re-rendered every New Round, and using a plain span\n  rather than <rt>) were therefore ignoring it. Now a MutationObserver\n  watches a reference <rt> in the static word list, and syncPinyin()\n  copies its current mode onto the flashcard's <rt>s and onto the tiles\n  (via d215-py-hidden \/ d215-py-mouseover classes on the root) after every\n  re-render and every toggle change. rt.hidden \/ rt.mouseover rules are\n  also defined here so hiding works even without the site's own CSS.\n-->\n<div class=\"dangdai-b2l15-vocab-embed\" id=\"dangdai-b2l15-vocab-embed-1\">\n<style>\n.dangdai-b2l15-vocab-embed {\n  --d215-oxblood: #7b2d26;\n  --d215-oxblood-dark: #5e211c;\n  --d215-mustard: #c9922b;\n  --d215-sage: #7c8b6f;\n  --d215-bone: #f7f1e6;\n  --d215-ink: #2c2620;\n  --d215-line: #e4d9c4;\n  font-family: 'Work Sans', -apple-system, sans-serif;\n  color: var(--d215-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-b2l15-vocab-embed * { box-sizing: border-box; }\n.dangdai-b2l15-vocab-embed h1,\n.dangdai-b2l15-vocab-embed h2,\n.dangdai-b2l15-vocab-embed h3 {\n  font-family: 'Bitter', Georgia, serif;\n  color: var(--d215-oxblood-dark);\n  margin: 0 0 8px;\n}\n.dangdai-b2l15-vocab-embed .d215-support-note {\n  font-size: 0.85rem;\n  color: var(--d215-sage);\n  border-bottom: 1px solid var(--d215-line);\n  padding-bottom: 12px;\n  margin: 0 0 16px;\n}\n.dangdai-b2l15-vocab-embed .d215-lede {\n  margin: 0 0 24px;\n  padding: 14px 16px;\n  background: var(--d215-bone);\n  border-left: 4px solid var(--d215-mustard);\n  border-radius: 4px;\n  font-size: 0.98rem;\n}\n.dangdai-b2l15-vocab-embed .d215-lede b { color: var(--d215-oxblood-dark); }\n.dangdai-b2l15-vocab-embed .d215-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(--d215-oxblood);\n  padding: 3px 9px;\n  border-radius: 3px;\n  margin: 32px 0 10px;\n}\n.dangdai-b2l15-vocab-embed .d215-word-card {\n  border: 1px solid var(--d215-line);\n  border-radius: 8px;\n  padding: 12px 14px;\n  margin-bottom: 10px;\n  background: #fff;\n}\n.dangdai-b2l15-vocab-embed .d215-word-top {\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  flex-wrap: wrap;\n}\n.dangdai-b2l15-vocab-embed .d215-num {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  color: var(--d215-mustard);\n  min-width: 22px;\n}\n.dangdai-b2l15-vocab-embed .d215-hanzi { font-size: 1.35rem; font-weight: 600; }\n.dangdai-b2l15-vocab-embed .d215-pos {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: #fff;\n  background: var(--d215-sage);\n  padding: 2px 7px;\n  border-radius: 10px;\n}\n.dangdai-b2l15-vocab-embed ruby {\n  ruby-position: over;\n  margin-right: 2px;\n  color: var(--d215-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-b2l15-vocab-embed .rb {\n  color: var(--d215-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-b2l15-vocab-embed rt {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.6rem !important;\n  color: var(--d215-sage) !important;\n  font-weight: 400;\n}\n.dangdai-b2l15-vocab-embed rt.hidden { display: none; }\n.dangdai-b2l15-vocab-embed rt.mouseover { opacity: 0; }\n.dangdai-b2l15-vocab-embed rt.mouseover:hover { opacity: 1; }\n.dangdai-b2l15-vocab-embed .d215-meaning { font-style: italic; color: #6b5f52; font-size: 0.92rem; }\n.dangdai-b2l15-vocab-embed .d215-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(--d215-bone);\n  color: var(--d215-oxblood);\n  border-radius: 50%;\n  cursor: pointer;\n  margin-left: auto;\n}\n.dangdai-b2l15-vocab-embed .d215-speaker:hover { background: var(--d215-mustard); color: #fff; }\n.dangdai-b2l15-vocab-embed .d215-example {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px dashed var(--d215-line);\n  font-size: 0.95rem;\n}\n.dangdai-b2l15-vocab-embed .d215-example .d215-sent-word { display: inline-flex; }\n.dangdai-b2l15-vocab-embed .d215-example .d215-punct { margin-right: 2px; }\n.dangdai-b2l15-vocab-embed .d215-example .d215-en {\n  display: block;\n  color: #6b5f52;\n  font-size: 0.85rem;\n  margin-top: 4px;\n}\n.dangdai-b2l15-vocab-embed .d215-dialogue-note { font-size: 0.85rem; color: #6b5f52; margin: 0 0 10px; }\n.dangdai-b2l15-vocab-embed .d215-dialogue {\n  background: var(--d215-bone);\n  border-radius: 8px;\n  padding: 16px 18px;\n  margin-top: 8px;\n}\n.dangdai-b2l15-vocab-embed .d215-line {\n  display: flex;\n  gap: 8px;\n  margin-bottom: 12px;\n  align-items: flex-start;\n  flex-wrap: wrap;\n}\n.dangdai-b2l15-vocab-embed .d215-speaker-tag {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.72rem;\n  color: var(--d215-oxblood);\n  min-width: 46px;\n  padding-top: 3px;\n}\n.dangdai-b2l15-vocab-embed .d215-line-body { flex: 1; min-width: 200px; }\n.dangdai-b2l15-vocab-embed .d215-line-en { display: block; color: #6b5f52; font-size: 0.82rem; margin-top: 2px; }\n\n.dangdai-b2l15-vocab-embed .d215-fc-hint { font-size: 0.85rem; color: #6b5f52; margin: 0 0 12px; text-align: center; }\n.dangdai-b2l15-vocab-embed .d215-flashcard-wrap { max-width: 320px; margin: 0 auto 14px; perspective: 1200px; }\n.dangdai-b2l15-vocab-embed .d215-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-b2l15-vocab-embed .d215-flashcard.d215-flipped { transform: rotateY(180deg); }\n.dangdai-b2l15-vocab-embed .d215-fc-face {\n  position: absolute;\n  inset: 0;\n  backface-visibility: hidden;\n  border: 1px solid var(--d215-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-b2l15-vocab-embed .d215-fc-back { transform: rotateY(180deg); background: var(--d215-bone); }\n.dangdai-b2l15-vocab-embed .d215-fc-front .d215-hanzi { font-size: 4rem !important; }\n.dangdai-b2l15-vocab-embed .d215-flashcard-wrap rt { font-size: 1.2rem !important; }\n.dangdai-b2l15-vocab-embed .d215-fc-back .d215-meaning { font-style: italic; color: var(--d215-oxblood-dark); font-size: 1.725rem; }\n.dangdai-b2l15-vocab-embed .d215-fc-back .d215-pos { margin-top: 8px; }\n.dangdai-b2l15-vocab-embed .d215-flashcard-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 28px; }\n.dangdai-b2l15-vocab-embed .d215-game-btn {\n  font-family: 'Work Sans', sans-serif;\n  font-size: 0.85rem;\n  border: 1px solid var(--d215-oxblood);\n  color: var(--d215-oxblood);\n  background: #fff;\n  padding: 6px 14px;\n  border-radius: 20px;\n  cursor: pointer;\n}\n.dangdai-b2l15-vocab-embed .d215-game-btn:hover { background: var(--d215-oxblood); color: #fff; }\n.dangdai-b2l15-vocab-embed .d215-game-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }\n.dangdai-b2l15-vocab-embed .d215-game-status { font-family: 'IBM Plex Mono', monospace; font-size: 0.82rem; color: var(--d215-sage); }\n.dangdai-b2l15-vocab-embed .d215-game-board { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n.dangdai-b2l15-vocab-embed .d215-game-col { display: flex; flex-direction: column; gap: 8px; }\n.dangdai-b2l15-vocab-embed .d215-tile {\n  font-family: 'Work Sans', sans-serif;\n  text-align: left;\n  border: 1px solid var(--d215-line);\n  background: #fff;\n  border-radius: 6px;\n  padding: 10px 12px;\n  cursor: pointer;\n  font-size: 0.95rem;\n  color: var(--d215-ink);\n  transition: background 0.15s, border-color 0.15s, transform 0.1s;\n}\n.dangdai-b2l15-vocab-embed .d215-tile .d215-tile-py {\n  display: block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: var(--d215-sage);\n  margin-top: 2px;\n}\n\/* Match It tile pinyin follows the site's Pinyin Display toggle *\/\n.dangdai-b2l15-vocab-embed.d215-py-hidden .d215-tile .d215-tile-py { display: none; }\n.dangdai-b2l15-vocab-embed.d215-py-mouseover .d215-tile .d215-tile-py { opacity: 0; }\n.dangdai-b2l15-vocab-embed.d215-py-mouseover .d215-tile:hover .d215-tile-py { opacity: 1; }\n.dangdai-b2l15-vocab-embed .d215-tile:hover:not(.d215-matched):not(.d215-selected) { border-color: var(--d215-mustard); }\n.dangdai-b2l15-vocab-embed .d215-tile.d215-selected { border-color: var(--d215-oxblood); background: var(--d215-bone); }\n.dangdai-b2l15-vocab-embed .d215-tile.d215-matched { border-color: var(--d215-sage); background: #eef2e9; color: var(--d215-sage); cursor: default; }\n.dangdai-b2l15-vocab-embed .d215-tile.d215-wrong { border-color: #b5453d; background: #fbeceb; animation: d215-shake 0.3s; }\n@keyframes d215-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }\n.dangdai-b2l15-vocab-embed .d215-game-win { text-align: center; padding: 14px; font-family: 'Bitter', serif; color: var(--d215-oxblood-dark); display: none; }\n.dangdai-b2l15-vocab-embed .d215-game-win.d215-show { display: block; }\n@media (max-width: 480px) { .dangdai-b2l15-vocab-embed .d215-game-board { grid-template-columns: 1fr; } }\n.dangdai-b2l15-vocab-embed .d215-quiz { background: #fff; border: 1px solid var(--d215-line); border-radius: 12px; padding: 20px 22px; margin-top: 8px; }\n.dangdai-b2l15-vocab-embed .d215-quiz-progress { font-size: 0.82rem; color: var(--d215-sage); margin: 0 0 10px; font-family: 'IBM Plex Mono', monospace; }\n.dangdai-b2l15-vocab-embed .d215-quiz-prompt { font-size: 1.1rem; margin: 0 0 14px; }\n.dangdai-b2l15-vocab-embed .d215-quiz-options { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; }\n.dangdai-b2l15-vocab-embed .d215-quiz-opt { text-align: left; border: 1px solid var(--d215-line); background: var(--d215-bone); border-radius: 8px; padding: 10px 14px; cursor: pointer; font-size: 0.98rem; color: var(--d215-ink); }\n.dangdai-b2l15-vocab-embed .d215-quiz-opt:hover { background: #f0e6d2; }\n.dangdai-b2l15-vocab-embed .d215-quiz-opt.correct { background: #e3efdd; border-color: #7fae6d; color: #3d5c34; }\n.dangdai-b2l15-vocab-embed .d215-quiz-opt.incorrect { background: #f5e0dc; border-color: var(--d215-oxblood); color: var(--d215-oxblood-dark); }\n.dangdai-b2l15-vocab-embed .d215-quiz-opt[disabled] { cursor: default; }\n.dangdai-b2l15-vocab-embed .d215-quiz-input-row { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }\n.dangdai-b2l15-vocab-embed .d215-quiz-input { flex: 1 1 200px; border: 1px solid var(--d215-line); border-radius: 8px; padding: 9px 12px; font-size: 0.98rem; }\n.dangdai-b2l15-vocab-embed .d215-quiz-submit, .dangdai-b2l15-vocab-embed .d215-quiz-next, .dangdai-b2l15-vocab-embed .d215-quiz-retake { border: none; background: var(--d215-oxblood); color: #fff; border-radius: 20px; padding: 8px 18px; font-size: 0.9rem; cursor: pointer; }\n.dangdai-b2l15-vocab-embed .d215-quiz-submit:hover, .dangdai-b2l15-vocab-embed .d215-quiz-next:hover, .dangdai-b2l15-vocab-embed .d215-quiz-retake:hover { background: var(--d215-oxblood-dark); }\n.dangdai-b2l15-vocab-embed .d215-quiz-feedback { font-size: 0.95rem; margin: 0 0 10px; min-height: 1.4em; }\n.dangdai-b2l15-vocab-embed .d215-quiz-feedback.correct { color: #3d5c34; }\n.dangdai-b2l15-vocab-embed .d215-quiz-feedback.incorrect { color: var(--d215-oxblood-dark); }\n.dangdai-b2l15-vocab-embed .d215-quiz-score { text-align: center; }\n.dangdai-b2l15-vocab-embed .d215-quiz-score .d215-quiz-score-num { font-size: 2.2rem; font-weight: 700; color: var(--d215-oxblood-dark); display: block; margin-bottom: 8px; font-family: 'Bitter', serif; }\n<\/style>\n\n<p class=\"d215-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=\"d215-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 2 \u00b7 Lesson 15\u300c<span class=\"lang-zh-TW\">\u904e\u6625\u7bc0<\/span><span class=\"lang-zh-CN\">\u8fc7\u6625\u8282<\/span>\u300dLunar New Year<\/b> \u2014 every word from \u751f\u8a5e\u4e00 and \u751f\u8a5e\u4e8c (Vocabulary I &amp; II), including the Names and Phrases sections, 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=\"d215-sec-eyebrow\">01 \u2014 VOCABULARY I \u751f\u8a5e\u4e00<\/div>\n<div id=\"d215-word-list-1\"><\/div>\n\n<div class=\"d215-sec-eyebrow\">02 \u2014 PHRASES I \u8a5e\u7d44<\/div>\n<div id=\"d215-word-list-2\"><\/div>\n\n<div class=\"d215-sec-eyebrow\">03 \u2014 VOCABULARY II \u751f\u8a5e\u4e8c<\/div>\n<div id=\"d215-word-list-3\"><\/div>\n\n<div class=\"d215-sec-eyebrow\">04 \u2014 NAMES &amp; PHRASES II \u5c08\u6709\u540d\u8a5e\u3001\u8a5e\u7d44<\/div>\n<div id=\"d215-word-list-4\"><\/div>\n\n<div class=\"d215-sec-eyebrow\">05 \u2014 PUT IT TOGETHER \u5c0d\u8a71\u7df4\u7fd2<\/div>\n<p class=\"d215-dialogue-note\"><em>Note: this lesson&#8217;s own dialogue and reading text are copyrighted, so I wrote a short original conversation below between \u5b89\u540c and \u4f2f\u4f2f on Lunar New Year&#8217;s Eve, using vocabulary from this lesson and earlier lessons, so you can see the words used together. For the real Lesson 15 dialogue and reading passage, please use your own copy of the textbook.<\/em><\/p>\n<div class=\"d215-dialogue\" id=\"d215-dialogue\"><\/div>\n\n<div class=\"d215-sec-eyebrow\">06 \u2014 FLASHCARDS<\/div>\n<p class=\"d215-fc-hint\">Tap the card to flip it, then use the arrows to move through the deck.<\/p>\n<div class=\"d215-flashcard-wrap\">\n  <div class=\"d215-flashcard\" id=\"d215-flashcard\">\n    <div class=\"d215-fc-face d215-fc-front\" id=\"d215-fc-front\"><\/div>\n    <div class=\"d215-fc-face d215-fc-back\" id=\"d215-fc-back\"><\/div>\n  <\/div>\n<\/div>\n<div class=\"d215-flashcard-controls\">\n  <button class=\"d215-game-btn\" id=\"d215-fc-prev\">\u2039 Prev<\/button>\n  <span class=\"d215-game-status\" id=\"d215-fc-progress\">1 \/ 42<\/span>\n  <button class=\"d215-game-btn\" id=\"d215-fc-next\">Next \u203a<\/button>\n<\/div>\n\n<div class=\"d215-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=\"d215-game-bar\">\n  <button class=\"d215-game-btn\" id=\"d215-game-new\">New Round<\/button>\n  <span class=\"d215-game-status\" id=\"d215-game-status\">0 \/ 8 matched<\/span>\n<\/div>\n<div class=\"d215-game-board\">\n  <div class=\"d215-game-col\" id=\"d215-game-col-zh\"><\/div>\n  <div class=\"d215-game-col\" id=\"d215-game-col-en\"><\/div>\n<\/div>\n<div class=\"d215-game-win\" id=\"d215-game-win\">\ud83c\udf89 All matched! Nice work.<\/div>\n\n<div class=\"d215-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=\"d215-quiz\" id=\"d215-quiz\"><\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('dangdai-b2l15-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  function WD(t, s, pt, ps) { return { t: t, s: s, pt: pt, ps: ps }; }\n\n  var GROUPS = {\n    'd215-word-list-1': [\n      { t: \"\u6625\u7bc0\", s: \"\u6625\u8282\", p: \"ch\u016bnji\u00e9\", pos: \"N\", meaning: \"the Lunar New Year, the Spring Festival\",\n        ex: [W(\"\u6625\u7bc0\",\"\u6625\u8282\",\"Ch\u016bnji\u00e9\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u53f0\u7063\",\"\u53f0\u6e7e\",\"T\u00e1iw\u0101n\"), W(\"\u6700\",\"\u6700\",\"zu\u00ec\"), W(\"\u91cd\u8981\",\"\u91cd\u8981\",\"zh\u00f2ngy\u00e0o\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u7bc0\u65e5\",\"\u8282\u65e5\",\"ji\u00e9r\u00ec\"), \"\u3002\"],\n        exEn: \"The Spring Festival is Taiwan's most important holiday.\" },\n      { t: \"\u4f2f\u4f2f\", s: \"\u4f2f\u4f2f\", p: \"b\u00f3bo\", pos: \"N\", meaning: \"(older) uncle, friends' fathers in general\",\n        ex: [W(\"\u6211\",\"\u6211\",\"W\u01d2\"), W(\"\u53bb\",\"\u53bb\",\"q\u00f9\"), W(\"\u670b\u53cb\",\"\u670b\u53cb\",\"p\u00e9ngy\u01d2u\"), W(\"\u5bb6\",\"\u5bb6\",\"ji\u0101\"), W(\"\u770b\",\"\u770b\",\"k\u00e0n\"), W(\"\u4ed6\",\"\u4ed6\",\"t\u0101\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u4f2f\u4f2f\",\"\u4f2f\u4f2f\",\"b\u00f3bo\"), \"\u3002\"],\n        exEn: \"I went to my friend's home to see his father.\" },\n      { t: \"\u5e74\u591c\u98ef\", s: \"\u5e74\u591c\u996d\", p: \"ni\u00e1ny\u00e8f\u00e0n\", pos: \"N\", meaning: \"Lunar New Year's Eve dinner\",\n        ex: [W(\"\u6211\u5011\",\"\u6211\u4eec\",\"W\u01d2men\"), W(\"\u5168\u5bb6\",\"\u5168\u5bb6\",\"qu\u00e1nji\u0101\"), W(\"\u4e00\u8d77\",\"\u4e00\u8d77\",\"y\u00ecq\u01d0\"), W(\"\u5403\",\"\u5403\",\"ch\u012b\"), W(\"\u5e74\u591c\u98ef\",\"\u5e74\u591c\u996d\",\"ni\u00e1ny\u00e8f\u00e0n\"), \"\u3002\"],\n        exEn: \"Our whole family eats the New Year's Eve dinner together.\" },\n      { t: \"\u6253\u64fe\", s: \"\u6253\u6270\", p: \"d\u01cer\u01ceo\", pos: \"V\", meaning: \"to trouble (someone), to disturb\",\n        ex: [W(\"\u4e0d\u597d\u610f\u601d\",\"\u4e0d\u597d\u610f\u601d\",\"B\u00f9h\u01ceoy\u00ecsi\"), \"\uff0c\", W(\"\u6253\u64fe\",\"\u6253\u6270\",\"d\u01cer\u01ceo\"), W(\"\u4f60\",\"\u4f60\",\"n\u01d0\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\"],\n        exEn: \"Sorry to trouble you.\" },\n      { t: \"\u5973\u5152\", s: \"\u5973\u513f\", p: \"n\u01da'\u00e9r\", pos: \"N\", meaning: \"daughter\",\n        ex: [W(\"\u4ed6\",\"\u4ed6\",\"T\u0101\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u5973\u5152\",\"\u5973\u513f\",\"n\u01da'\u00e9r\"), W(\"\u5728\",\"\u5728\",\"z\u00e0i\"), W(\"\u570b\u5916\",\"\u56fd\u5916\",\"gu\u00f3w\u00e0i\"), W(\"\u5ff5\u66f8\",\"\u5ff5\u4e66\",\"ni\u00e0nsh\u016b\"), \"\u3002\"],\n        exEn: \"His daughter is studying abroad.\" },\n      { t: \"\u570b\u5916\", s: \"\u56fd\u5916\", p: \"gu\u00f3w\u00e0i\", pos: \"N\", meaning: \"abroad\",\n        ex: [W(\"\u6211\",\"\u6211\",\"W\u01d2\"), W(\"\u59d0\u59d0\",\"\u59d0\u59d0\",\"ji\u011bjie\"), W(\"\u4f4f\",\"\u4f4f\",\"zh\u00f9\"), W(\"\u5728\",\"\u5728\",\"z\u00e0i\"), W(\"\u570b\u5916\",\"\u56fd\u5916\",\"gu\u00f3w\u00e0i\"), \"\u3002\"],\n        exEn: \"My older sister lives abroad.\" },\n      { t: \"\u570d\u7210\", s: \"\u56f4\u7089\", p: \"w\u00e9il\u00fa\", pos: \"V-sep\", meaning: \"for a family to gather over Lunar New Year's Eve dinner\",\n        ex: [W(\"\u9664\u5915\",\"\u9664\u5915\",\"Ch\u00fax\u00ec\"), W(\"\u90a3\",\"\u90a3\",\"n\u00e0\"), W(\"\u5929\",\"\u5929\",\"ti\u0101n\"), W(\"\u5168\u5bb6\",\"\u5168\u5bb6\",\"qu\u00e1nji\u0101\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u570d\u7210\",\"\u56f4\u7089\",\"w\u00e9il\u00fa\"), \"\u3002\"],\n        exEn: \"On New Year's Eve the whole family gathers for the reunion dinner.\" },\n      { t: \"\u610f\u601d\", s: \"\u610f\u601d\", p: \"y\u00ecsi\", pos: \"N\", meaning: \"meaning\",\n        ex: [W(\"\u9019\",\"\u8fd9\",\"Zh\u00e8\"), W(\"\u53e5\",\"\u53e5\",\"j\u00f9\"), W(\"\u8a71\",\"\u8bdd\",\"hu\u00e0\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u4ec0\u9ebc\",\"\u4ec0\u4e48\",\"sh\u00e9nme\"), W(\"\u610f\u601d\",\"\u610f\u601d\",\"y\u00ecsi\"), \"\uff1f\"],\n        exEn: \"What does this sentence mean?\" },\n      { t: \"\u5168\u5bb6\", s: \"\u5168\u5bb6\", p: \"qu\u00e1nji\u0101\", pos: \"N\", meaning: \"the entire family\",\n        ex: [W(\"\u4ed6\u5011\",\"\u4ed6\u4eec\",\"T\u0101men\"), W(\"\u5168\u5bb6\",\"\u5168\u5bb6\",\"qu\u00e1nji\u0101\"), W(\"\u90fd\",\"\u90fd\",\"d\u014du\"), W(\"\u56de\",\"\u56de\",\"hu\u00ed\"), W(\"\u53f0\u5357\",\"\u53f0\u5357\",\"T\u00e1in\u00e1n\"), W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"gu\u00f2ni\u00e1n\"), \"\u3002\"],\n        exEn: \"Their whole family goes back to Tainan for the New Year.\" },\n      { t: \"\u5b69\u5b50\", s: \"\u5b69\u5b50\", p: \"h\u00e1izi\", pos: \"N\", meaning: \"children\",\n        ex: [W(\"\u5b69\u5b50\",\"\u5b69\u5b50\",\"H\u00e1izi\"), W(\"\u5011\",\"\u4eec\",\"men\"), W(\"\u90fd\",\"\u90fd\",\"d\u014du\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u9ad8\u8208\",\"\u9ad8\u5174\",\"g\u0101ox\u00ecng\"), \"\u3002\"],\n        exEn: \"The children are all very happy.\" },\n      { t: \"\u5409\u7965\", s: \"\u5409\u7965\", p: \"j\u00edxi\u00e1ng\", pos: \"Vs\", meaning: \"auspicious\",\n        ex: [W(\"\u9019\",\"\u8fd9\",\"Zh\u00e8\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ed\"), W(\"\u53e5\",\"\u53e5\",\"j\u00f9\"), W(\"\u5409\u7965\",\"\u5409\u7965\",\"j\u00edxi\u00e1ng\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u8a71\",\"\u8bdd\",\"hu\u00e0\"), \"\u3002\"],\n        exEn: \"This is an auspicious saying.\" },\n      { t: \"\u5e74\u7d00\", s: \"\u5e74\u7eaa\", p: \"ni\u00e1nj\u00ec\", pos: \"N\", meaning: \"age\",\n        ex: [W(\"\u723a\u723a\",\"\u7237\u7237\",\"Y\u00e9ye\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u5e74\u7d00\",\"\u5e74\u7eaa\",\"ni\u00e1nj\u00ec\"), W(\"\u5927\",\"\u5927\",\"d\u00e0\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\"],\n        exEn: \"Grandpa is getting on in years.\" }\n    ],\n    'd215-word-list-2': [\n      { t: \"\u904e\u5e74\", s: \"\u8fc7\u5e74\", p: \"gu\u00f2ni\u00e1n\", pos: \"Phrase\", meaning: \"to celebrate the Lunar New Year\",\n        ex: [W(\"\u4f60\",\"\u4f60\",\"N\u01d0\"), W(\"\u5728\",\"\u5728\",\"z\u00e0i\"), WD(\"\u54ea\u88e1\",\"\u54ea\u91cc\",\"n\u01cel\u01d0\",\"n\u01celi\"), W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"gu\u00f2ni\u00e1n\"), \"\uff1f\"],\n        exEn: \"Where are you celebrating the Lunar New Year?\" },\n      { t: \"\u9664\u5915\u591c\", s: \"\u9664\u5915\u591c\", p: \"ch\u00fax\u00ec y\u00e8\", pos: \"Phrase\", meaning: \"Lunar New Year's Eve\",\n        ex: [W(\"\u9664\u5915\u591c\",\"\u9664\u5915\u591c\",\"Ch\u00fax\u00ec y\u00e8\"), W(\"\u5927\u5bb6\",\"\u5927\u5bb6\",\"d\u00e0ji\u0101\"), W(\"\u90fd\",\"\u90fd\",\"d\u014du\"), W(\"\u56de\u5bb6\",\"\u56de\u5bb6\",\"hu\u00edji\u0101\"), W(\"\u5403\u98ef\",\"\u5403\u996d\",\"ch\u012bf\u00e0n\"), \"\u3002\"],\n        exEn: \"On New Year's Eve everyone goes home to eat.\" },\n      { t: \"\u7761\u8457\", s: \"\u7761\u8457\", p: \"shu\u00eczh\u00e1o\", pos: \"Phrase\", meaning: \"to fall asleep\",\n        ex: [W(\"\u4ed6\",\"\u4ed6\",\"T\u0101\"), W(\"\u770b\",\"\u770b\",\"k\u00e0n\"), W(\"\u96fb\u8996\",\"\u7535\u89c6\",\"di\u00e0nsh\u00ec\"), W(\"\u770b\",\"\u770b\",\"k\u00e0n\"), W(\"\u5230\",\"\u5230\",\"d\u00e0o\"), W(\"\u7761\u8457\",\"\u7761\u8457\",\"shu\u00eczh\u00e1o\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\"],\n        exEn: \"He fell asleep watching TV.\" },\n      { t: \"\u58d3\u6b72\u9322\", s: \"\u538b\u5c81\u94b1\", p: \"y\u0101su\u00ecqi\u00e1n\", pos: \"Phrase\", meaning: \"New Year's Eve money\",\n        ex: [W(\"\u5c0f\u5b69\",\"\u5c0f\u5b69\",\"Xi\u01ceoh\u00e1i\"), W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"gu\u00f2ni\u00e1n\"), W(\"\u53ef\u4ee5\",\"\u53ef\u4ee5\",\"k\u011by\u01d0\"), W(\"\u62ff\u5230\",\"\u62ff\u5230\",\"n\u00e1d\u00e0o\"), W(\"\u58d3\u6b72\u9322\",\"\u538b\u5c81\u94b1\",\"y\u0101su\u00ecqi\u00e1n\"), \"\u3002\"],\n        exEn: \"Children can receive lucky money at the New Year.\" },\n      { t: \"\u606d\u559c\u767c\u8ca1\", s: \"\u606d\u559c\u53d1\u8d22\", p: \"g\u014dngx\u01d0 f\u0101c\u00e1i\", pos: \"Phrase\", meaning: \"Congratulations. I wish you wealth.\",\n        ex: [W(\"\u898b\u9762\",\"\u89c1\u9762\",\"Ji\u00e0nmi\u00e0n\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6642\u5019\",\"\u65f6\u5019\",\"sh\u00edh\u00f2u\"), W(\"\u5927\u5bb6\",\"\u5927\u5bb6\",\"d\u00e0ji\u0101\"), W(\"\u90fd\",\"\u90fd\",\"d\u014du\"), W(\"\u8aaa\",\"\u8bf4\",\"shu\u014d\"), W(\"\u606d\u559c\u767c\u8ca1\",\"\u606d\u559c\u53d1\u8d22\",\"g\u014dngx\u01d0 f\u0101c\u00e1i\"), \"\u3002\"],\n        exEn: \"When people meet, everyone says \\\"wishing you wealth\\\".\" },\n      { t: \"\u597d\u4e86\", s: \"\u597d\u4e86\", p: \"h\u01ceo le\", pos: \"Phrase\", meaning: \"OK\",\n        ex: [W(\"\u597d\u4e86\",\"\u597d\u4e86\",\"H\u01ceo le\"), \"\uff0c\", W(\"\u6211\u5011\",\"\u6211\u4eec\",\"w\u01d2men\"), W(\"\u958b\u59cb\",\"\u5f00\u59cb\",\"k\u0101ish\u01d0\"), W(\"\u5427\",\"\u5427\",\"ba\"), \"\u3002\"],\n        exEn: \"OK, let's begin.\" }\n    ],\n    'd215-word-list-3': [\n      { t: \"\u7bc0\u65e5\", s: \"\u8282\u65e5\", p: \"ji\u00e9r\u00ec\", pos: \"N\", meaning: \"holiday, festival\",\n        ex: [W(\"\u6625\u7bc0\",\"\u6625\u8282\",\"Ch\u016bnji\u00e9\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ed\"), W(\"\u500b\",\"\u4e2a\",\"ge\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u5927\",\"\u5927\",\"d\u00e0\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u7bc0\u65e5\",\"\u8282\u65e5\",\"ji\u00e9r\u00ec\"), \"\u3002\"],\n        exEn: \"The Spring Festival is a very big holiday.\" },\n      { t: \"\u6253\u6383\", s: \"\u6253\u626b\", p: \"d\u01ces\u01ceo\", pos: \"V\", meaning: \"to clean up (must include sweeping)\",\n        ex: [W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"Gu\u00f2ni\u00e1n\"), W(\"\u524d\",\"\u524d\",\"qi\u00e1n\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u628a\",\"\u628a\",\"b\u01ce\"), W(\"\u5bb6\",\"\u5bb6\",\"ji\u0101\"), W(\"\u88e1\",\"\u91cc\",\"l\u01d0\"), W(\"\u6253\u6383\",\"\u6253\u626b\",\"d\u01ces\u01ceo\"), W(\"\u4e7e\u6de8\",\"\u5e72\u51c0\",\"g\u0101nj\u00ecng\"), \"\u3002\"],\n        exEn: \"Before the New Year, the house needs to be cleaned thoroughly.\" },\n      { t: \"\u53e6\u5916\", s: \"\u53e6\u5916\", p: \"l\u00ecngw\u00e0i\", pos: \"Conj\", meaning: \"in addition\",\n        ex: [W(\"\u53e6\u5916\",\"\u53e6\u5916\",\"L\u00ecngw\u00e0i\"), \"\uff0c\", W(\"\u6211\",\"\u6211\",\"w\u01d2\"), W(\"\u9084\",\"\u8fd8\",\"h\u00e1i\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u8cb7\",\"\u4e70\",\"m\u01cei\"), W(\"\u6c34\u679c\",\"\u6c34\u679c\",\"shu\u01d0gu\u01d2\"), \"\u3002\"],\n        exEn: \"In addition, I also need to buy fruit.\" },\n      { t: \"\u6625\u806f\", s: \"\u6625\u8054\", p: \"ch\u016bnli\u00e1n\", pos: \"N\", meaning: \"New Year's couplets (with calligraphy, in doublets)\",\n        ex: [W(\"\u9580\u53e3\",\"\u95e8\u53e3\",\"M\u00e9nk\u01d2u\"), W(\"\u8cbc\",\"\u8d34\",\"ti\u0113\"), W(\"\u8457\",\"\u7740\",\"zhe\"), W(\"\u7d05\u8272\",\"\u7ea2\u8272\",\"h\u00f3ngs\u00e8\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6625\u806f\",\"\u6625\u8054\",\"ch\u016bnli\u00e1n\"), \"\u3002\"],\n        exEn: \"Red New Year couplets are posted at the door.\" },\n      { t: \"\u9664\u5915\", s: \"\u9664\u5915\", p: \"ch\u00fax\u00ec\", pos: \"N\", meaning: \"Lunar New Year's Eve\",\n        ex: [W(\"\u9664\u5915\",\"\u9664\u5915\",\"Ch\u00fax\u00ec\"), W(\"\u90a3\",\"\u90a3\",\"n\u00e0\"), W(\"\u5929\",\"\u5929\",\"ti\u0101n\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u71b1\u9b27\",\"\u70ed\u95f9\",\"r\u00e8n\u00e0o\"), \"\u3002\"],\n        exEn: \"New Year's Eve is very lively.\" },\n      { t: \"\u5e74\u7cd5\", s: \"\u5e74\u7cd5\", p: \"ni\u00e1ng\u0101o\", pos: \"N\", meaning: \"new year rice cake\",\n        ex: [W(\"\u6211\",\"\u6211\",\"W\u01d2\"), W(\"\u559c\u6b61\",\"\u559c\u6b22\",\"x\u01d0hu\u0101n\"), W(\"\u5403\",\"\u5403\",\"ch\u012b\"), W(\"\u5e74\u7cd5\",\"\u5e74\u7cd5\",\"ni\u00e1ng\u0101o\"), \"\u3002\"],\n        exEn: \"I like eating rice cake.\" },\n      { t: \"\u6a58\u5b50\", s: \"\u6a58\u5b50\", p: \"j\u00fazi\", pos: \"N\", meaning: \"orange, tangerine\",\n        ex: [W(\"\u684c\",\"\u684c\",\"Zhu\u014d\"), W(\"\u4e0a\",\"\u4e0a\",\"sh\u00e0ng\"), W(\"\u6709\",\"\u6709\",\"y\u01d2u\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u591a\",\"\u591a\",\"du\u014d\"), W(\"\u6a58\u5b50\",\"\u6a58\u5b50\",\"j\u00fazi\"), \"\u3002\"],\n        exEn: \"There are lots of tangerines on the table.\" },\n      { t: \"\u5b88\u6b72\", s: \"\u5b88\u5c81\", p: \"sh\u01d2usu\u00ec\", pos: \"Vi\", meaning: \"to stay up waiting for the arrival of the New Year\",\n        ex: [W(\"\u6211\u5011\",\"\u6211\u4eec\",\"W\u01d2men\"), W(\"\u4e00\u8d77\",\"\u4e00\u8d77\",\"y\u00ecq\u01d0\"), W(\"\u5b88\u6b72\",\"\u5b88\u5c81\",\"sh\u01d2usu\u00ec\"), W(\"\u5230\",\"\u5230\",\"d\u00e0o\"), W(\"\u5341\u4e8c\",\"\u5341\u4e8c\",\"sh\u00ed'\u00e8r\"), W(\"\u9ede\",\"\u70b9\",\"di\u01cen\"), \"\u3002\"],\n        exEn: \"We stay up together until twelve to welcome the New Year.\" },\n      { t: \"\u8aaa\u6cd5\", s: \"\u8bf4\u6cd5\", p: \"shu\u014df\u01ce\", pos: \"N\", meaning: \"way of saying things, a theory\",\n        ex: [W(\"\u9019\",\"\u8fd9\",\"Zh\u00e8\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u7a2e\",\"\u79cd\",\"zh\u01d2ng\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u6709\u540d\",\"\u6709\u540d\",\"y\u01d2um\u00edng\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u8aaa\u6cd5\",\"\u8bf4\u6cd5\",\"shu\u014df\u01ce\"), \"\u3002\"],\n        exEn: \"This is a very well-known saying.\" },\n      { t: \"\u665a\", s: \"\u665a\", p: \"w\u01cen\", pos: \"Vs\", meaning: \"late\",\n        ex: [W(\"\u4eca\u5929\",\"\u4eca\u5929\",\"J\u012bnti\u0101n\"), W(\"\u592a\",\"\u592a\",\"t\u00e0i\"), W(\"\u665a\",\"\u665a\",\"w\u01cen\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\uff0c\", W(\"\u660e\u5929\",\"\u660e\u5929\",\"m\u00edngti\u0101n\"), W(\"\u518d\",\"\u518d\",\"z\u00e0i\"), W(\"\u8aaa\",\"\u8bf4\",\"shu\u014d\"), W(\"\u5427\",\"\u5427\",\"ba\"), \"\u3002\"],\n        exEn: \"It's too late today, let's talk tomorrow.\" },\n      { t: \"\u6d3b\", s: \"\u6d3b\", p: \"hu\u00f3\", pos: \"Vs\", meaning: \"to live, to stay active\",\n        ex: [W(\"\u723a\u723a\",\"\u7237\u7237\",\"Y\u00e9ye\"), W(\"\u6d3b\",\"\u6d3b\",\"hu\u00f3\"), W(\"\u5f97\",\"\u5f97\",\"de\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u5065\u5eb7\",\"\u5065\u5eb7\",\"ji\u00e0nk\u0101ng\"), \"\u3002\"],\n        exEn: \"Grandpa lives a very healthy life.\" },\n      { t: \"\u5e73\u5b89\", s: \"\u5e73\u5b89\", p: \"p\u00edng'\u0101n\", pos: \"Vs\", meaning: \"peaceful, eventless\",\n        ex: [W(\"\u795d\",\"\u795d\",\"Zh\u00f9\"), W(\"\u4f60\",\"\u4f60\",\"n\u01d0\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5e74\",\"\u5e74\",\"ni\u00e1n\"), W(\"\u5e73\u5b89\",\"\u5e73\u5b89\",\"p\u00edng'\u0101n\"), \"\u3002\"],\n        exEn: \"Wishing you a peaceful year.\" },\n      { t: \"\u51fa\u9580\", s: \"\u51fa\u95e8\", p: \"ch\u016bm\u00e9n\", pos: \"V-sep\", meaning: \"to go out, to leave the house\",\n        ex: [W(\"\u4ed6\",\"\u4ed6\",\"T\u0101\"), W(\"\u6bcf\u5929\",\"\u6bcf\u5929\",\"m\u011biti\u0101n\"), W(\"\u65e9\u4e0a\",\"\u65e9\u4e0a\",\"z\u01ceosh\u00e0ng\"), W(\"\u516b\",\"\u516b\",\"b\u0101\"), W(\"\u9ede\",\"\u70b9\",\"di\u01cen\"), W(\"\u51fa\u9580\",\"\u51fa\u95e8\",\"ch\u016bm\u00e9n\"), \"\u3002\"],\n        exEn: \"He leaves the house at eight every morning.\" },\n      { t: \"\u62dc\u5e74\", s: \"\u62dc\u5e74\", p: \"b\u00e0ini\u00e1n\", pos: \"V-sep\", meaning: \"to pay a New Year visit\",\n        ex: [W(\"\u5927\u5e74\u521d\u4e8c\",\"\u5927\u5e74\u521d\u4e8c\",\"D\u00e0ni\u00e1n ch\u016b'\u00e8r\"), W(\"\u6211\u5011\",\"\u6211\u4eec\",\"w\u01d2men\"), W(\"\u53bb\",\"\u53bb\",\"q\u00f9\"), W(\"\u5916\u5a46\",\"\u5916\u5a46\",\"w\u00e0ip\u00f3\"), W(\"\u5bb6\",\"\u5bb6\",\"ji\u0101\"), W(\"\u62dc\u5e74\",\"\u62dc\u5e74\",\"b\u00e0ini\u00e1n\"), \"\u3002\"],\n        exEn: \"On the second day of the New Year we go to Grandma's to pay a New Year visit.\" },\n      { t: \"\u53c8\", s: \"\u53c8\", p: \"y\u00f2u\", pos: \"Adv\", meaning: \"again\",\n        ex: [W(\"\u4eca\u5e74\",\"\u4eca\u5e74\",\"J\u012bnni\u00e1n\"), W(\"\u53c8\",\"\u53c8\",\"y\u00f2u\"), W(\"\u5230\",\"\u5230\",\"d\u00e0o\"), W(\"\u4e86\",\"\u4e86\",\"le\"), W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"gu\u00f2ni\u00e1n\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6642\u5019\",\"\u65f6\u5019\",\"sh\u00edh\u00f2u\"), \"\u3002\"],\n        exEn: \"It's New Year time again this year.\" },\n      { t: \"\u8d77\u4f86\", s: \"\u8d77\u6765\", p: \"q\u01d0l\u00e1i\", pos: \"Ptc\", meaning: \"As a resultative particle, it indicates the beginning of an action of state.\",\n        ex: [W(\"\u5929\u6c23\",\"\u5929\u6c14\",\"Ti\u0101nq\u00ec\"), W(\"\u51b7\",\"\u51b7\",\"l\u011bng\"), W(\"\u8d77\u4f86\",\"\u8d77\u6765\",\"q\u01d0l\u00e1i\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\"],\n        exEn: \"The weather has started to get cold.\" }\n    ],\n    'd215-word-list-4': [\n      { t: \"\u83ef\u4eba\", s: \"\u534e\u4eba\", p: \"Hu\u00e1r\u00e9n\", pos: \"Names\", meaning: \"Chinese, a person of Chinese ethnicity\",\n        ex: [W(\"\u5f88\",\"\u5f88\",\"H\u011bn\"), W(\"\u591a\",\"\u591a\",\"du\u014d\"), W(\"\u83ef\u4eba\",\"\u534e\u4eba\",\"Hu\u00e1r\u00e9n\"), W(\"\u90fd\",\"\u90fd\",\"d\u014du\"), W(\"\u904e\",\"\u8fc7\",\"gu\u00f2\"), W(\"\u6625\u7bc0\",\"\u6625\u8282\",\"ch\u016bnji\u00e9\"), \"\u3002\"],\n        exEn: \"Many Chinese people celebrate the Spring Festival.\" },\n      { t: \"\u8cbc\u4e0a\", s: \"\u8d34\u4e0a\", p: \"ti\u0113sh\u00e0ng\", pos: \"Phrase\", meaning: \"to stick on (the wall)\",\n        ex: [W(\"\u9580\u53e3\",\"\u95e8\u53e3\",\"M\u00e9nk\u01d2u\"), W(\"\u8cbc\u4e0a\",\"\u8d34\u4e0a\",\"ti\u0113sh\u00e0ng\"), W(\"\u4e86\",\"\u4e86\",\"le\"), W(\"\u65b0\",\"\u65b0\",\"x\u012bn\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6625\u806f\",\"\u6625\u8054\",\"ch\u016bnli\u00e1n\"), \"\u3002\"],\n        exEn: \"New couplets have been put up at the door.\" },\n      { t: \"\u5e74\u5e74\u6709\u9918\", s: \"\u5e74\u5e74\u6709\u4f59\", p: \"ni\u00e1nni\u00e1n y\u01d2uy\u00fa\", pos: \"Phrase\", meaning: \"abundance every year\",\n        ex: [\"\u300c\", W(\"\u5e74\u5e74\u6709\u9918\",\"\u5e74\u5e74\u6709\u4f59\",\"Ni\u00e1nni\u00e1n y\u01d2uy\u00fa\"), \"\u300d\", W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u597d\",\"\u597d\",\"h\u01ceo\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u795d\u798f\",\"\u795d\u798f\",\"zh\u00f9f\u00fa\"), \"\u3002\"],\n        exEn: \"\\\"Abundance every year\\\" is a nice blessing.\" },\n      { t: \"\u6b65\u6b65\u9ad8\u5347\", s: \"\u6b65\u6b65\u9ad8\u5347\", p: \"b\u00f9b\u00f9 g\u0101osh\u0113ng\", pos: \"Phrase\", meaning: \"to rise in social rank\",\n        ex: [\"\u300c\", W(\"\u6b65\u6b65\u9ad8\u5347\",\"\u6b65\u6b65\u9ad8\u5347\",\"B\u00f9b\u00f9 g\u0101osh\u0113ng\"), \"\u300d\", W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u5e0c\u671b\",\"\u5e0c\u671b\",\"x\u012bw\u00e0ng\"), W(\"\u5de5\u4f5c\",\"\u5de5\u4f5c\",\"g\u014dngzu\u00f2\"), W(\"\u9806\u5229\",\"\u987a\u5229\",\"sh\u00f9nl\u00ec\"), \"\u3002\"],\n        exEn: \"\\\"Rising step by step\\\" expresses a hope for success at work.\" },\n      { t: \"\u5927\u5409\u5927\u5229\", s: \"\u5927\u5409\u5927\u5229\", p: \"d\u00e0j\u00ed d\u00e0l\u00ec\", pos: \"Phrase\", meaning: \"great wishes for the new year\",\n        ex: [W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"Gu\u00f2ni\u00e1n\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6642\u5019\",\"\u65f6\u5019\",\"sh\u00edh\u00f2u\"), W(\"\u5927\u5bb6\",\"\u5927\u5bb6\",\"d\u00e0ji\u0101\"), W(\"\u8aaa\",\"\u8bf4\",\"shu\u014d\"), W(\"\u5927\u5409\u5927\u5229\",\"\u5927\u5409\u5927\u5229\",\"d\u00e0j\u00ed d\u00e0l\u00ec\"), \"\u3002\"],\n        exEn: \"At the New Year people say \\\"great luck and great fortune\\\".\" },\n      { t: \"\u653e\u97ad\u70ae\", s: \"\u653e\u97ad\u70ae\", p: \"f\u00e0ng bi\u0101np\u00e0o\", pos: \"Phrase\", meaning: \"to set off firecrackers\",\n        ex: [W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"Gu\u00f2ni\u00e1n\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6642\u5019\",\"\u65f6\u5019\",\"sh\u00edh\u00f2u\"), W(\"\u6709\",\"\u6709\",\"y\u01d2u\"), W(\"\u4eba\",\"\u4eba\",\"r\u00e9n\"), W(\"\u653e\u97ad\u70ae\",\"\u653e\u97ad\u70ae\",\"f\u00e0ng bi\u0101np\u00e0o\"), \"\u3002\"],\n        exEn: \"At the New Year some people set off firecrackers.\" },\n      { t: \"\u5927\u5e74\u521d\u4e00\", s: \"\u5927\u5e74\u521d\u4e00\", p: \"d\u00e0ni\u00e1n ch\u016by\u012b\", pos: \"Phrase\", meaning: \"first day of the Lunar New Year\",\n        ex: [W(\"\u5927\u5e74\u521d\u4e00\",\"\u5927\u5e74\u521d\u4e00\",\"D\u00e0ni\u00e1n ch\u016by\u012b\"), W(\"\u6211\u5011\",\"\u6211\u4eec\",\"w\u01d2men\"), W(\"\u53bb\",\"\u53bb\",\"q\u00f9\"), W(\"\u62dc\u5e74\",\"\u62dc\u5e74\",\"b\u00e0ini\u00e1n\"), \"\u3002\"],\n        exEn: \"On the first day of the New Year we go visiting.\" },\n      { t: \"\u5927\u5e74\u521d\u4e94\", s: \"\u5927\u5e74\u521d\u4e94\", p: \"d\u00e0ni\u00e1n ch\u016bw\u01d4\", pos: \"Phrase\", meaning: \"fifth day of the Lunar New Year\",\n        ex: [W(\"\u5927\u5e74\u521d\u4e94\",\"\u5927\u5e74\u521d\u4e94\",\"D\u00e0ni\u00e1n ch\u016bw\u01d4\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u591a\",\"\u591a\",\"du\u014d\"), W(\"\u4eba\",\"\u4eba\",\"r\u00e9n\"), W(\"\u958b\u59cb\",\"\u5f00\u59cb\",\"k\u0101ish\u01d0\"), W(\"\u4e0a\u73ed\",\"\u4e0a\u73ed\",\"sh\u00e0ngb\u0101n\"), \"\u3002\"],\n        exEn: \"On the fifth day of the New Year many people start working again.\" }\n    ]\n  };\n\n  var DIALOGUE = [\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u4f2f\u4f2f\",\"\u4f2f\u4f2f\",\"B\u00f3bo\"), \"\uff0c\", W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"gu\u00f2ni\u00e1n\"), W(\"\u597d\",\"\u597d\",\"h\u01ceo\"), \"\uff01\", W(\"\u4e0d\u597d\u610f\u601d\",\"\u4e0d\u597d\u610f\u601d\",\"b\u00f9h\u01ceoy\u00ecsi\"), \"\uff0c\", W(\"\u4f86\",\"\u6765\",\"l\u00e1i\"), W(\"\u6253\u64fe\",\"\u6253\u6270\",\"d\u01cer\u01ceo\"), W(\"\u4f60\u5011\",\"\u4f60\u4eec\",\"n\u01d0men\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\"],\n      en: \"Uncle, happy New Year! Sorry to trouble you.\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u6b61\u8fce\",\"\u6b22\u8fce\",\"Hu\u0101ny\u00edng\"), W(\"\u6b61\u8fce\",\"\u6b22\u8fce\",\"hu\u0101ny\u00edng\"), \"\uff01\", W(\"\u4eca\u5929\",\"\u4eca\u5929\",\"j\u012bnti\u0101n\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u9664\u5915\u591c\",\"\u9664\u5915\u591c\",\"ch\u00fax\u00ec y\u00e8\"), \"\uff0c\", W(\"\u6211\u5011\",\"\u6211\u4eec\",\"w\u01d2men\"), W(\"\u5168\u5bb6\",\"\u5168\u5bb6\",\"qu\u00e1nji\u0101\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u570d\u7210\",\"\u56f4\u7089\",\"w\u00e9il\u00fa\"), W(\"\u5403\",\"\u5403\",\"ch\u012b\"), W(\"\u5e74\u591c\u98ef\",\"\u5e74\u591c\u996d\",\"ni\u00e1ny\u00e8f\u00e0n\"), \"\uff0c\", W(\"\u4f60\",\"\u4f60\",\"n\u01d0\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u6211\u5011\",\"\u6211\u4eec\",\"w\u01d2men\"), W(\"\u8acb\",\"\u8bf7\",\"q\u01d0ng\"), W(\"\u4f86\",\"\u6765\",\"l\u00e1i\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u7b2c\u4e00\",\"\u7b2c\u4e00\",\"d\u00ec y\u012b\"), W(\"\u4f4d\",\"\u4f4d\",\"w\u00e8i\"), W(\"\u5916\u570b\",\"\u5916\u56fd\",\"w\u00e0igu\u00f3\"), W(\"\u5ba2\u4eba\",\"\u5ba2\u4eba\",\"k\u00e8r\u00e9n\"), \"\u3002\"],\n      en: \"Welcome, welcome! Today is New Year's Eve, and our whole family is gathering for the reunion dinner \u2014 you're the first foreign guest we've invited.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u6211\",\"\u6211\",\"W\u01d2\"), W(\"\u5728\",\"\u5728\",\"z\u00e0i\"), W(\"\u570b\u5916\",\"\u56fd\u5916\",\"gu\u00f3w\u00e0i\"), W(\"\u5f9e\u4f86\",\"\u4ece\u6765\",\"c\u00f3ngl\u00e1i\"), W(\"\u6c92\u6709\",\"\u6ca1\u6709\",\"m\u00e9iy\u01d2u\"), W(\"\u904e\",\"\u8fc7\",\"gu\u00f2\"), W(\"\u904e\",\"\u8fc7\",\"gu\u00f2\"), W(\"\u6625\u7bc0\",\"\u6625\u8282\",\"ch\u016bnji\u00e9\"), \"\uff0c\", W(\"\u9019\",\"\u8fd9\",\"zh\u00e8\"), W(\"\u500b\",\"\u4e2a\",\"ge\"), W(\"\u7bc0\u65e5\",\"\u8282\u65e5\",\"ji\u00e9r\u00ec\"), W(\"\u5c0d\",\"\u5bf9\",\"du\u00ec\"), W(\"\u6211\",\"\u6211\",\"w\u01d2\"), W(\"\u4f86\u8aaa\",\"\u6765\u8bf4\",\"l\u00e1ishu\u014d\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u65b0\u9bae\",\"\u65b0\u9c9c\",\"x\u012bnxi\u0101n\"), \"\u3002\"],\n      en: \"I've never celebrated the Spring Festival abroad, so this holiday is very new to me.\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u4f60\",\"\u4f60\",\"N\u01d0\"), W(\"\u96d6\u7136\",\"\u867d\u7136\",\"su\u012br\u00e1n\"), W(\"\u4e0d\u662f\",\"\u4e0d\u662f\",\"b\u00fash\u00ec\"), W(\"\u83ef\u4eba\",\"\u534e\u4eba\",\"Hu\u00e1r\u00e9n\"), \"\uff0c\", W(\"\u53ef\u662f\",\"\u53ef\u662f\",\"k\u011bsh\u00ec\"), W(\"\u5b78\",\"\u5b66\",\"xu\u00e9\"), W(\"\u4e86\",\"\u4e86\",\"le\"), W(\"\u4e2d\u6587\",\"\u4e2d\u6587\",\"zh\u014dngw\u00e9n\"), \"\uff0c\", W(\"\u4e00\u5b9a\",\"\u4e00\u5b9a\",\"y\u00edd\u00ecng\"), W(\"\u4e5f\",\"\u4e5f\",\"y\u011b\"), W(\"\u6703\",\"\u4f1a\",\"hu\u00ec\"), W(\"\u559c\u6b61\",\"\u559c\u6b22\",\"x\u01d0hu\u0101n\"), W(\"\u9019\",\"\u8fd9\",\"zh\u00e8\"), W(\"\u500b\",\"\u4e2a\",\"ge\"), W(\"\u7bc0\u65e5\",\"\u8282\u65e5\",\"ji\u00e9r\u00ec\"), W(\"\u7684\",\"\u7684\",\"de\"), \"\u3002\"],\n      en: \"Although you're not Chinese, you've studied Chinese, so you'll surely like this holiday.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u4f2f\u4f2f\",\"\u4f2f\u4f2f\",\"B\u00f3bo\"), \"\uff0c\", W(\"\u4f60\u5011\",\"\u4f60\u4eec\",\"n\u01d0men\"), W(\"\u9580\u53e3\",\"\u95e8\u53e3\",\"m\u00e9nk\u01d2u\"), W(\"\u8cbc\u4e0a\",\"\u8d34\u4e0a\",\"ti\u0113sh\u00e0ng\"), W(\"\u4e86\",\"\u4e86\",\"le\"), W(\"\u7d05\u8272\",\"\u7ea2\u8272\",\"h\u00f3ngs\u00e8\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u7d19\",\"\u7eb8\",\"zh\u01d0\"), \"\uff0c\", W(\"\u4e0a\u9762\",\"\u4e0a\u9762\",\"sh\u00e0ngmi\u00e0n\"), W(\"\u5beb\",\"\u5199\",\"xi\u011b\"), W(\"\u4e86\",\"\u4e86\",\"le\"), W(\"\u4ec0\u9ebc\",\"\u4ec0\u4e48\",\"sh\u00e9nme\"), \"\uff1f\"],\n      en: \"Uncle, you've put up red paper at your door \u2014 what does it say?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u90a3\",\"\u90a3\",\"N\u00e0\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u6625\u806f\",\"\u6625\u8054\",\"ch\u016bnli\u00e1n\"), \"\uff0c\", W(\"\u5beb\",\"\u5199\",\"xi\u011b\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), \"\u300c\", W(\"\u5e74\u5e74\u6709\u9918\",\"\u5e74\u5e74\u6709\u4f59\",\"ni\u00e1nni\u00e1n y\u01d2uy\u00fa\"), \"\u300d\", \"\u3001\", \"\u300c\", W(\"\u6b65\u6b65\u9ad8\u5347\",\"\u6b65\u6b65\u9ad8\u5347\",\"b\u00f9b\u00f9 g\u0101osh\u0113ng\"), \"\u300d\", \"\u3001\", \"\u300c\", W(\"\u5927\u5409\u5927\u5229\",\"\u5927\u5409\u5927\u5229\",\"d\u00e0j\u00ed d\u00e0l\u00ec\"), \"\u300d\", W(\"\u9019\u4e9b\",\"\u8fd9\u4e9b\",\"zh\u00e8xi\u0113\"), W(\"\u5409\u7965\",\"\u5409\u7965\",\"j\u00edxi\u00e1ng\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u8a71\",\"\u8bdd\",\"hu\u00e0\"), \"\u3002\"],\n      en: \"Those are New Year couplets \u2014 they say \\\"abundance every year,\\\" \\\"rising step by step,\\\" and \\\"great luck and great fortune,\\\" auspicious sayings like that.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u9019\u4e9b\",\"\u8fd9\u4e9b\",\"Zh\u00e8xi\u0113\"), W(\"\u8a71\",\"\u8bdd\",\"hu\u00e0\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u4ec0\u9ebc\",\"\u4ec0\u4e48\",\"sh\u00e9nme\"), W(\"\u610f\u601d\",\"\u610f\u601d\",\"y\u00ecsi\"), \"\uff1f\"],\n      en: \"What do these sayings mean?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u90fd\",\"\u90fd\",\"D\u014du\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u5e0c\u671b\",\"\u5e0c\u671b\",\"x\u012bw\u00e0ng\"), W(\"\u65b0\",\"\u65b0\",\"x\u012bn\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5e74\",\"\u5e74\",\"ni\u00e1n\"), W(\"\u5927\u5bb6\",\"\u5927\u5bb6\",\"d\u00e0ji\u0101\"), W(\"\u5e73\u5b89\",\"\u5e73\u5b89\",\"p\u00edng'\u0101n\"), \"\u3001\", W(\"\u9806\u5229\",\"\u987a\u5229\",\"sh\u00f9nl\u00ec\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u610f\u601d\",\"\u610f\u601d\",\"y\u00ecsi\"), \"\u3002\"],\n      en: \"They all mean we hope everyone will be safe and have things go smoothly in the new year.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u684c\u4e0a\",\"\u684c\u4e0a\",\"Zhu\u014dsh\u00e0ng\"), W(\"\u6709\",\"\u6709\",\"y\u01d2u\"), W(\"\u5e74\u7cd5\",\"\u5e74\u7cd5\",\"ni\u00e1ng\u0101o\"), W(\"\u548c\",\"\u548c\",\"h\u00e0n\"), W(\"\u6a58\u5b50\",\"\u6a58\u5b50\",\"j\u00fazi\"), \"\uff0c\", W(\"\u4e5f\",\"\u4e5f\",\"y\u011b\"), W(\"\u6709\",\"\u6709\",\"y\u01d2u\"), W(\"\u4ec0\u9ebc\",\"\u4ec0\u4e48\",\"sh\u00e9nme\"), W(\"\u8aaa\u6cd5\",\"\u8bf4\u6cd5\",\"shu\u014df\u01ce\"), W(\"\u55ce\",\"\u5417\",\"ma\"), \"\uff1f\"],\n      en: \"There's rice cake and tangerines on the table \u2014 is there some saying behind those too?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u6709\",\"\u6709\",\"Y\u01d2u\"), W(\"\u554a\",\"\u554a\",\"a\"), \"\uff0c\", W(\"\u5e74\u7cd5\",\"\u5e74\u7cd5\",\"ni\u00e1ng\u0101o\"), W(\"\u8868\u793a\",\"\u8868\u793a\",\"bi\u01ceosh\u00ec\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5e74\",\"\u5e74\",\"ni\u00e1n\"), W(\"\u6bd4\",\"\u6bd4\",\"b\u01d0\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5e74\",\"\u5e74\",\"ni\u00e1n\"), W(\"\u9ad8\",\"\u9ad8\",\"g\u0101o\"), \"\uff0c\", W(\"\u6a58\u5b50\",\"\u6a58\u5b50\",\"j\u00fazi\"), W(\"\u8ddf\",\"\u8ddf\",\"g\u0113n\"), \"\u300c\", W(\"\u5409\",\"\u5409\",\"j\u00ed\"), \"\u300d\", W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u50cf\",\"\u50cf\",\"xi\u00e0ng\"), \"\uff0c\", W(\"\u6240\u4ee5\",\"\u6240\u4ee5\",\"su\u01d2y\u01d0\"), W(\"\u4e5f\",\"\u4e5f\",\"y\u011b\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u5409\u7965\",\"\u5409\u7965\",\"j\u00edxi\u00e1ng\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u610f\u601d\",\"\u610f\u601d\",\"y\u00ecsi\"), \"\u3002\"],\n      en: \"Yes \u2014 rice cake means getting better each year, and tangerines sound a lot like \\\"auspicious,\\\" so they carry that meaning too.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u4f2f\u4f2f\",\"\u4f2f\u4f2f\",\"B\u00f3bo\"), \"\uff0c\", W(\"\u4f60\",\"\u4f60\",\"n\u01d0\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u5973\u5152\",\"\u5973\u513f\",\"n\u01da'\u00e9r\"), W(\"\u548c\",\"\u548c\",\"h\u00e0n\"), W(\"\u5b69\u5b50\",\"\u5b69\u5b50\",\"h\u00e1izi\"), W(\"\u5011\",\"\u4eec\",\"men\"), W(\"\u5462\",\"\u5462\",\"ne\"), \"\uff1f\"],\n      en: \"Uncle, where are your daughter and the children?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u4ed6\u5011\",\"\u4ed6\u4eec\",\"T\u0101men\"), W(\"\u6b63\u5728\",\"\u6b63\u5728\",\"zh\u00e8ngz\u00e0i\"), W(\"\u6253\u6383\",\"\u6253\u626b\",\"d\u01ces\u01ceo\"), W(\"\u623f\u9593\",\"\u623f\u95f4\",\"f\u00e1ngji\u0101n\"), \"\uff0c\", W(\"\u53e6\u5916\",\"\u53e6\u5916\",\"l\u00ecngw\u00e0i\"), W(\"\u9084\",\"\u8fd8\",\"h\u00e1i\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u6e96\u5099\",\"\u51c6\u5907\",\"zh\u01d4nb\u00e8i\"), W(\"\u4e00\u4e9b\",\"\u4e00\u4e9b\",\"y\u00ecxi\u0113\"), W(\"\u83dc\",\"\u83dc\",\"c\u00e0i\"), \"\u3002\"],\n      en: \"They're cleaning the rooms, and they also need to prepare some dishes.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u904e\u5e74\",\"\u8fc7\u5e74\",\"Gu\u00f2ni\u00e1n\"), W(\"\u9084\",\"\u8fd8\",\"h\u00e1i\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u6253\u6383\",\"\u6253\u626b\",\"d\u01ces\u01ceo\"), W(\"\u55ce\",\"\u5417\",\"ma\"), \"\uff1f\"],\n      en: \"Do you still need to clean during the New Year?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u5c0d\",\"\u5bf9\",\"Du\u00ec\"), \"\uff0c\", W(\"\u5927\u5e74\u521d\u4e00\",\"\u5927\u5e74\u521d\u4e00\",\"d\u00e0ni\u00e1n ch\u016by\u012b\"), W(\"\u4e0d\u80fd\",\"\u4e0d\u80fd\",\"b\u00f9n\u00e9ng\"), W(\"\u6253\u6383\",\"\u6253\u626b\",\"d\u01ces\u01ceo\"), \"\uff0c\", W(\"\u4e0d\u7136\",\"\u4e0d\u7136\",\"b\u00f9r\u00e1n\"), W(\"\u6703\",\"\u4f1a\",\"hu\u00ec\"), W(\"\u628a\",\"\u628a\",\"b\u01ce\"), W(\"\u597d\u904b\",\"\u597d\u8fd0\",\"h\u01ceoy\u00f9n\"), W(\"\u6383\",\"\u626b\",\"s\u01ceo\"), W(\"\u51fa\u9580\",\"\u51fa\u95e8\",\"ch\u016bm\u00e9n\"), \"\uff0c\", W(\"\u6240\u4ee5\",\"\u6240\u4ee5\",\"su\u01d2y\u01d0\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u5728\",\"\u5728\",\"z\u00e0i\"), W(\"\u9664\u5915\",\"\u9664\u5915\",\"ch\u00fax\u00ec\"), W(\"\u524d\",\"\u524d\",\"qi\u00e1n\"), W(\"\u6253\u6383\",\"\u6253\u626b\",\"d\u01ces\u01ceo\"), W(\"\u4e7e\u6de8\",\"\u5e72\u51c0\",\"g\u0101nj\u00ecng\"), \"\u3002\"],\n      en: \"Yes \u2014 you can't sweep on the first day of the New Year or you'd sweep good luck out the door, so you have to clean thoroughly before New Year's Eve.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u90a3\",\"\u90a3\",\"N\u00e0\"), W(\"\u5927\u5e74\u521d\u4e94\",\"\u5927\u5e74\u521d\u4e94\",\"d\u00e0ni\u00e1n ch\u016bw\u01d4\"), W(\"\u5462\",\"\u5462\",\"ne\"), \"\uff1f\"],\n      en: \"What about the fifth day?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u5927\u5e74\u521d\u4e94\",\"\u5927\u5e74\u521d\u4e94\",\"D\u00e0ni\u00e1n ch\u016bw\u01d4\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u591a\",\"\u591a\",\"du\u014d\"), W(\"\u516c\u53f8\",\"\u516c\u53f8\",\"g\u014dngs\u012b\"), W(\"\u958b\u5de5\",\"\u5f00\u5de5\",\"k\u0101ig\u014dng\"), \"\uff0c\", W(\"\u5927\u5bb6\",\"\u5927\u5bb6\",\"d\u00e0ji\u0101\"), W(\"\u9084\",\"\u8fd8\",\"h\u00e1i\"), W(\"\u6703\",\"\u4f1a\",\"hu\u00ec\"), W(\"\u653e\u97ad\u70ae\",\"\u653e\u97ad\u70ae\",\"f\u00e0ng bi\u0101np\u00e0o\"), \"\uff0c\", W(\"\u6176\u795d\",\"\u5e86\u795d\",\"q\u00ecngzh\u00f9\"), W(\"\u65b0\",\"\u65b0\",\"x\u012bn\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5e74\",\"\u5e74\",\"ni\u00e1n\"), \"\u3002\"],\n      en: \"On the fifth day many companies reopen, and people set off firecrackers to celebrate the new year.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u5403\",\"\u5403\",\"Ch\u012b\"), W(\"\u5b8c\",\"\u5b8c\",\"w\u00e1n\"), W(\"\u5e74\u591c\u98ef\",\"\u5e74\u591c\u996d\",\"ni\u00e1ny\u00e8f\u00e0n\"), \"\uff0c\", W(\"\u4f60\u5011\",\"\u4f60\u4eec\",\"n\u01d0men\"), W(\"\u9084\",\"\u8fd8\",\"h\u00e1i\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u505a\",\"\u505a\",\"zu\u00f2\"), W(\"\u4ec0\u9ebc\",\"\u4ec0\u4e48\",\"sh\u00e9nme\"), \"\uff1f\"],\n      en: \"After the reunion dinner, what else do you do?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u6211\u5011\",\"\u6211\u4eec\",\"W\u01d2men\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u5b88\u6b72\",\"\u5b88\u5c81\",\"sh\u01d2usu\u00ec\"), \"\uff0c\", W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5bb6\",\"\u5bb6\",\"ji\u0101\"), W(\"\u4eba\",\"\u4eba\",\"r\u00e9n\"), W(\"\u804a\u5929\",\"\u804a\u5929\",\"li\u00e1oti\u0101n\"), W(\"\u804a\",\"\u804a\",\"li\u00e1o\"), W(\"\u5230\",\"\u5230\",\"d\u00e0o\"), W(\"\u5f88\",\"\u5f88\",\"h\u011bn\"), W(\"\u665a\",\"\u665a\",\"w\u01cen\"), W(\"\u624d\",\"\u624d\",\"c\u00e1i\"), W(\"\u7761\",\"\u7761\",\"shu\u00ec\"), \"\u3002\", W(\"\u6211\",\"\u6211\",\"w\u01d2\"), W(\"\u5e74\u7d00\",\"\u5e74\u7eaa\",\"ni\u00e1nj\u00ec\"), W(\"\u5927\",\"\u5927\",\"d\u00e0\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\uff0c\", W(\"\u5e38\u5e38\",\"\u5e38\u5e38\",\"ch\u00e1ngch\u00e1ng\"), W(\"\u5b88\",\"\u5b88\",\"sh\u01d2u\"), W(\"\u5230\",\"\u5230\",\"d\u00e0o\"), W(\"\u4e00\u534a\",\"\u4e00\u534a\",\"y\u00edb\u00e0n\"), W(\"\u5c31\",\"\u5c31\",\"ji\u00f9\"), W(\"\u7761\u8457\",\"\u7761\u8457\",\"shu\u00eczh\u00e1o\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\"],\n      en: \"We stay up to welcome the New Year, chatting as a family until very late. I'm getting on in years, so I often fall asleep halfway through.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u5927\u5bb6\",\"\u5927\u5bb6\",\"D\u00e0ji\u0101\"), W(\"\u8aaa\",\"\u8bf4\",\"shu\u014d\"), W(\"\u5b88\u6b72\",\"\u5b88\u5c81\",\"sh\u01d2usu\u00ec\"), W(\"\u53ef\u4ee5\",\"\u53ef\u4ee5\",\"k\u011by\u01d0\"), W(\"\u8b93\",\"\u8ba9\",\"r\u00e0ng\"), W(\"\u7236\u6bcd\",\"\u7236\u6bcd\",\"f\u00f9m\u01d4\"), W(\"\u6d3b\",\"\u6d3b\",\"hu\u00f3\"), W(\"\u5f97\",\"\u5f97\",\"de\"), W(\"\u66f4\",\"\u66f4\",\"g\u00e8ng\"), W(\"\u4e45\",\"\u4e45\",\"ji\u01d4\"), \"\uff0c\", W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u55ce\",\"\u5417\",\"ma\"), \"\uff1f\"],\n      en: \"People say staying up to welcome the New Year lets parents live longer \u2014 is that right?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u5c0d\",\"\u5bf9\",\"Du\u00ec\"), \"\uff0c\", W(\"\u9019\",\"\u8fd9\",\"zh\u00e8\"), W(\"\u662f\",\"\u662f\",\"sh\u00ec\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u7a2e\",\"\u79cd\",\"zh\u01d2ng\"), W(\"\u8aaa\u6cd5\",\"\u8bf4\u6cd5\",\"shu\u014df\u01ce\"), \"\uff0c\", W(\"\u5e0c\u671b\",\"\u5e0c\u671b\",\"x\u012bw\u00e0ng\"), W(\"\u9577\u8f29\",\"\u957f\u8f88\",\"zh\u01cengb\u00e8i\"), W(\"\u5e73\u5b89\",\"\u5e73\u5b89\",\"p\u00edng'\u0101n\"), W(\"\u5065\u5eb7\",\"\u5065\u5eb7\",\"ji\u00e0nk\u0101ng\"), \"\u3002\", W(\"\u660e\u5929\",\"\u660e\u5929\",\"m\u00edngti\u0101n\"), W(\"\u5927\u5e74\u521d\u4e00\",\"\u5927\u5e74\u521d\u4e00\",\"d\u00e0ni\u00e1n ch\u016by\u012b\"), \"\uff0c\", W(\"\u6211\u5011\",\"\u6211\u4eec\",\"w\u01d2men\"), W(\"\u9084\",\"\u8fd8\",\"h\u00e1i\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u53bb\",\"\u53bb\",\"q\u00f9\"), W(\"\u62dc\u5e74\",\"\u62dc\u5e74\",\"b\u00e0ini\u00e1n\"), \"\uff0c\", W(\"\u4f60\",\"\u4f60\",\"n\u01d0\"), W(\"\u8981\u4e0d\u8981\",\"\u8981\u4e0d\u8981\",\"y\u00e0ob\u00fay\u00e0o\"), W(\"\u4e00\u8d77\",\"\u4e00\u8d77\",\"y\u00ecq\u01d0\"), W(\"\u53bb\",\"\u53bb\",\"q\u00f9\"), \"\uff1f\"],\n      en: \"Yes, that's one saying \u2014 it expresses a wish for elders to be safe and healthy. Tomorrow is the first day of the New Year and we're going to pay New Year visits \u2014 want to come along?\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u597d\",\"\u597d\",\"H\u01ceo\"), W(\"\u554a\",\"\u554a\",\"a\"), \"\uff01\", W(\"\u62dc\u5e74\",\"\u62dc\u5e74\",\"b\u00e0ini\u00e1n\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u6642\u5019\",\"\u65f6\u5019\",\"sh\u00edh\u00f2u\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u8aaa\",\"\u8bf4\",\"shu\u014d\"), W(\"\u4ec0\u9ebc\",\"\u4ec0\u4e48\",\"sh\u00e9nme\"), \"\uff1f\"],\n      en: \"Sure! What should I say when paying New Year visits?\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u4f60\",\"\u4f60\",\"N\u01d0\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u5c0d\",\"\u5bf9\",\"du\u00ec\"), W(\"\u9577\u8f29\",\"\u957f\u8f88\",\"zh\u01cengb\u00e8i\"), W(\"\u8aaa\",\"\u8bf4\",\"shu\u014d\"), \"\u300c\", W(\"\u606d\u559c\u767c\u8ca1\",\"\u606d\u559c\u53d1\u8d22\",\"g\u014dngx\u01d0 f\u0101c\u00e1i\"), \"\u300d\", \"\uff0c\", W(\"\u5b69\u5b50\",\"\u5b69\u5b50\",\"h\u00e1izi\"), W(\"\u5011\",\"\u4eec\",\"men\"), W(\"\u5c31\",\"\u5c31\",\"ji\u00f9\"), W(\"\u6703\",\"\u4f1a\",\"hu\u00ec\"), W(\"\u62ff\u5230\",\"\u62ff\u5230\",\"n\u00e1d\u00e0o\"), W(\"\u58d3\u6b72\u9322\",\"\u538b\u5c81\u94b1\",\"y\u0101su\u00ecqi\u00e1n\"), \"\u3002\"],\n      en: \"You say \\\"wishing you wealth\\\" to the elders, and the children will receive lucky money.\" },\n    { speakerT: \"\u5b89\u540c\", speakerS: \"\u5b89\u540c\",\n      tokens: [W(\"\u6211\",\"\u6211\",\"W\u01d2\"), W(\"\u8a18\u4f4f\",\"\u8bb0\u4f4f\",\"j\u00eczh\u00f9\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\u3002\", W(\"\u65b0\",\"\u65b0\",\"x\u012bn\"), W(\"\u7684\",\"\u7684\",\"de\"), W(\"\u4e00\",\"\u4e00\",\"y\u00ec\"), W(\"\u5e74\",\"\u5e74\",\"ni\u00e1n\"), W(\"\u53c8\",\"\u53c8\",\"y\u00f2u\"), W(\"\u8981\",\"\u8981\",\"y\u00e0o\"), W(\"\u958b\u59cb\",\"\u5f00\u59cb\",\"k\u0101ish\u01d0\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\uff0c\", W(\"\u771f\",\"\u771f\",\"zh\u0113n\"), W(\"\u671f\u5f85\",\"\u671f\u5f85\",\"q\u00edd\u00e0i\"), \"\uff01\"],\n      en: \"I've got it. A new year is about to begin again \u2014 I'm really looking forward to it!\" },\n    { speakerT: \"\u4f2f\u4f2f\", speakerS: \"\u4f2f\u4f2f\",\n      tokens: [W(\"\u597d\u4e86\",\"\u597d\u4e86\",\"H\u01ceo le\"), \"\uff0c\", W(\"\u5e74\u591c\u98ef\",\"\u5e74\u591c\u996d\",\"ni\u00e1ny\u00e8f\u00e0n\"), W(\"\u5feb\",\"\u5feb\",\"ku\u00e0i\"), W(\"\u6e96\u5099\",\"\u51c6\u5907\",\"zh\u01d4nb\u00e8i\"), W(\"\u597d\",\"\u597d\",\"h\u01ceo\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\uff0c\", W(\"\u665a\u9ede\",\"\u665a\u70b9\",\"w\u01cendi\u01cen\"), W(\"\u7b49\",\"\u7b49\",\"d\u011bng\"), W(\"\u5176\u4ed6\",\"\u5176\u4ed6\",\"q\u00edt\u0101\"), W(\"\u4eba\",\"\u4eba\",\"r\u00e9n\"), W(\"\u90fd\",\"\u90fd\",\"d\u014du\"), W(\"\u56de\u4f86\",\"\u56de\u6765\",\"hu\u00edl\u00e1i\"), \"\uff0c\", WD(\"\u9019\u88e1\",\"\u8fd9\u91cc\",\"zh\u00e8l\u01d0\",\"zh\u00e8li\"), W(\"\u5c31\",\"\u5c31\",\"ji\u00f9\"), W(\"\u6703\",\"\u4f1a\",\"hu\u00ec\"), W(\"\u71b1\u9b27\",\"\u70ed\u95f9\",\"r\u00e8n\u00e0o\"), W(\"\u8d77\u4f86\",\"\u8d77\u6765\",\"q\u01d0l\u00e1i\"), W(\"\u4e86\",\"\u4e86\",\"le\"), \"\uff01\"],\n      en: \"OK, the reunion dinner is almost ready, and once the others all come back later, it'll get lively here!\" }\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=\"d215-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=\"d215-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=\"d215-word-card\">' +\n        '<div class=\"d215-word-top\">' +\n          '<span class=\"d215-num\">' + num + '<\/span>' +\n          '<span class=\"d215-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>' +\n          '<span class=\"d215-pos\">' + w.pos + '<\/span>' +\n          '<span class=\"d215-meaning\">' + w.meaning + '<\/span>' +\n          '<button class=\"d215-speaker\" data-trad=\"' + w.t + '\" data-simp=\"' + w.s + '\" aria-label=\"Play pronunciation\">' + SPEAKER_SVG + '<\/button>' +\n        '<\/div>' +\n        '<div class=\"d215-example\">' +\n          renderTokens(w.ex) +\n          '<span class=\"d215-en\">' + w.exEn + '<\/span>' +\n        '<\/div>' +\n      '<\/div>';\n    });\n    container.innerHTML = html;\n  });\n\n  var dialogueEl = root.querySelector('#d215-dialogue');\n  if (dialogueEl) {\n    var dHtml = '';\n    DIALOGUE.forEach(function (line) {\n      dHtml += '<div class=\"d215-line\">' +\n        '<span class=\"d215-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=\"d215-line-body\">' +\n          renderTokens(line.tokens) +\n          '<span class=\"d215-line-en\">' + line.en + '<\/span>' +\n        '<\/span>' +\n      '<\/div>';\n    });\n    dialogueEl.innerHTML = dHtml;\n  }\n\n  \/\/ ---- Pinyin sync with the site's Pinyin Display toggle ----\n  \/\/ The site's toggle tags existing <rt> elements with \"hidden\" or \"mouseover\".\n  \/\/ Content we re-render later (flashcard, Match It tiles) wouldn't get those\n  \/\/ classes, so we read the current mode off a static reference <rt> in the\n  \/\/ word list and copy it over whenever we re-render or the mode changes.\n  var pyRefRt = root.querySelector('#d215-word-list-1 rt');\n\n  function getPinyinMode() {\n    if (!pyRefRt) return 'show';\n    if (pyRefRt.classList.contains('hidden')) return 'hidden';\n    if (pyRefRt.classList.contains('mouseover')) return 'mouseover';\n    return 'show';\n  }\n\n  function syncPinyin() {\n    var mode = getPinyinMode();\n    var isHidden = (mode === 'hidden');\n    var isMouse = (mode === 'mouseover');\n    var fcWrap = root.querySelector('.d215-flashcard-wrap');\n    if (fcWrap) {\n      fcWrap.querySelectorAll('rt').forEach(function (rt) {\n        rt.classList.toggle('hidden', isHidden);\n        rt.classList.toggle('mouseover', isMouse);\n      });\n    }\n    root.classList.toggle('d215-py-hidden', isHidden);\n    root.classList.toggle('d215-py-mouseover', isMouse);\n  }\n\n  if (pyRefRt) {\n    if ('MutationObserver' in window) {\n      new MutationObserver(syncPinyin).observe(pyRefRt, { attributes: true, attributeFilter: ['class'] });\n    }\n  }\n\n  \/\/ ---- Flashcards ----\n  var fcCard = root.querySelector('#d215-flashcard');\n  var fcFront = root.querySelector('#d215-fc-front');\n  var fcBack = root.querySelector('#d215-fc-back');\n  var fcProgress = root.querySelector('#d215-fc-progress');\n  var fcPrevBtn = root.querySelector('#d215-fc-prev');\n  var fcNextBtn = root.querySelector('#d215-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=\"d215-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>';\n    fcBack.innerHTML = '<span class=\"d215-meaning\">' + w.meaning + '<\/span><span class=\"d215-pos\">' + w.pos + '<\/span>';\n    if (fcProgress) fcProgress.textContent = (fcIndex + 1) + ' \/ ' + ALL_WORDS.length;\n    if (fcCard) fcCard.classList.remove('d215-flipped');\n    fcFlipped = false;\n    syncPinyin();\n  }\n\n  if (fcCard) {\n    fcCard.addEventListener('click', function () {\n      fcFlipped = !fcFlipped;\n      fcCard.classList.toggle('d215-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('#d215-game-col-zh');\n  var gameColEn = root.querySelector('#d215-game-col-en');\n  var gameStatus = root.querySelector('#d215-game-status');\n  var gameWin = root.querySelector('#d215-game-win');\n  var gameNewBtn = root.querySelector('#d215-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('d215-show');\n\n    var zhOrder = shuffle(gameRound);\n    var enOrder = shuffle(gameRound);\n\n    gameColZh.innerHTML = zhOrder.map(function (w) {\n      return '<button class=\"d215-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=\"d215-tile-py\">' + (w.pt || w.p) + '<\/span>' +\n      '<\/button>';\n    }).join('');\n\n    gameColEn.innerHTML = enOrder.map(function (w) {\n      return '<button class=\"d215-tile\" data-id=\"' + w.t + '\" data-side=\"en\">' + w.meaning + '<\/button>';\n    }).join('');\n\n    updateGameStatus();\n    syncPinyin();\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('d215-matched')) return;\n    var side = tile.getAttribute('data-side');\n\n    if (side === 'zh') {\n      if (gameSelectedZh) gameSelectedZh.classList.remove('d215-selected');\n      gameSelectedZh = tile;\n      tile.classList.add('d215-selected');\n    } else {\n      if (gameSelectedEn) gameSelectedEn.classList.remove('d215-selected');\n      gameSelectedEn = tile;\n      tile.classList.add('d215-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('d215-selected');\n          gameSelectedEn.classList.remove('d215-selected');\n          gameSelectedZh.classList.add('d215-matched');\n          gameSelectedEn.classList.add('d215-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('d215-show');\n            }\n          }\n        } else {\n          gameBusy = true;\n          var z = gameSelectedZh, en = gameSelectedEn;\n          z.classList.add('d215-wrong');\n          en.classList.add('d215-wrong');\n          setTimeout(function () {\n            z.classList.remove('d215-selected', 'd215-wrong');\n            en.classList.remove('d215-selected', 'd215-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('.d215-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\\\">\u6625\u7bc0<\/span><span class=\\\"lang-zh-CN\\\">\u6625\u8282<\/span> means...\", options: [\"the Lunar New Year, the Spring Festival\", \"daughter\", \"abroad\", \"age\"], answer: 0 },\n    { type: 'type', prompt: \"Type the pinyin for <span class=\\\"lang-zh-TW\\\">\u5e74\u591c\u98ef<\/span><span class=\\\"lang-zh-CN\\\">\u5e74\u591c\u996d<\/span>.\", accept: [\"nianyefan\"] },\n    { type: 'mc', prompt: \"Which word means \\\"to trouble (someone), to disturb\\\"?\", options: [\"<span class=\\\"lang-zh-TW\\\">\u6253\u64fe<\/span><span class=\\\"lang-zh-CN\\\">\u6253\u6270<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u6253\u6383<\/span><span class=\\\"lang-zh-CN\\\">\u6253\u626b<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u62dc\u5e74<\/span><span class=\\\"lang-zh-CN\\\">\u62dc\u5e74<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u5b88\u6b72<\/span><span class=\\\"lang-zh-CN\\\">\u5b88\u5c81<\/span>\"], answer: 0 },\n    { type: 'type', prompt: \"Type the English word for <span class=\\\"lang-zh-TW\\\">\u5973\u5152<\/span><span class=\\\"lang-zh-CN\\\">\u5973\u513f<\/span>.\", accept: [\"daughter\"] },\n    { type: 'mc', prompt: \"<span class=\\\"lang-zh-TW\\\">\u570d\u7210<\/span><span class=\\\"lang-zh-CN\\\">\u56f4\u7089<\/span> means...\", options: [\"for a family to gather over New Year's Eve dinner\", \"to set off firecrackers\", \"to fall asleep\", \"to pay a New Year visit\"], answer: 0 },\n    { type: 'mc', prompt: \"Which word means \\\"auspicious\\\"?\", options: [\"<span class=\\\"lang-zh-TW\\\">\u5409\u7965<\/span><span class=\\\"lang-zh-CN\\\">\u5409\u7965<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u5e73\u5b89<\/span><span class=\\\"lang-zh-CN\\\">\u5e73\u5b89<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u665a<\/span><span class=\\\"lang-zh-CN\\\">\u665a<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u6d3b<\/span><span class=\\\"lang-zh-CN\\\">\u6d3b<\/span>\"], answer: 0 },\n    { type: 'type', prompt: \"Type the pinyin for <span class=\\\"lang-zh-TW\\\">\u58d3\u6b72\u9322<\/span><span class=\\\"lang-zh-CN\\\">\u538b\u5c81\u94b1<\/span>.\", accept: [\"yasuiqian\"] },\n    { type: 'mc', prompt: \"<span class=\\\"lang-zh-TW\\\">\u5b88\u6b72<\/span><span class=\\\"lang-zh-CN\\\">\u5b88\u5c81<\/span> means...\", options: [\"to stay up waiting for the arrival of the New Year\", \"to pay a New Year visit\", \"to clean up\", \"to fall asleep\"], answer: 0 },\n    { type: 'type', prompt: \"Type the English word for <span class=\\\"lang-zh-TW\\\">\u6a58\u5b50<\/span><span class=\\\"lang-zh-CN\\\">\u6a58\u5b50<\/span>.\", accept: [\"orange\", \"tangerine\", \"orange, tangerine\"] },\n    { type: 'mc', prompt: \"Which word means \\\"to pay a New Year visit\\\"?\", options: [\"<span class=\\\"lang-zh-TW\\\">\u62dc\u5e74<\/span><span class=\\\"lang-zh-CN\\\">\u62dc\u5e74<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u51fa\u9580<\/span><span class=\\\"lang-zh-CN\\\">\u51fa\u95e8<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u5b88\u6b72<\/span><span class=\\\"lang-zh-CN\\\">\u5b88\u5c81<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u570d\u7210<\/span><span class=\\\"lang-zh-CN\\\">\u56f4\u7089<\/span>\"], answer: 0 },\n    { type: 'mc', prompt: \"<span class=\\\"lang-zh-TW\\\">\u6625\u806f<\/span><span class=\\\"lang-zh-CN\\\">\u6625\u8054<\/span> means...\", options: [\"New Year's couplets\", \"New Year rice cake\", \"New Year's Eve money\", \"firecrackers\"], answer: 0 },\n    { type: 'type', prompt: \"Type the pinyin for <span class=\\\"lang-zh-TW\\\">\u6253\u6383<\/span><span class=\\\"lang-zh-CN\\\">\u6253\u626b<\/span>.\", accept: [\"dasao\"] },\n    { type: 'mc', prompt: \"<span class=\\\"lang-zh-TW\\\">\u5e74\u5e74\u6709\u9918<\/span><span class=\\\"lang-zh-CN\\\">\u5e74\u5e74\u6709\u4f59<\/span> means...\", options: [\"abundance every year\", \"to rise in social rank\", \"great wishes for the new year\", \"to set off firecrackers\"], answer: 0 },\n    { type: 'type', prompt: \"Type the English word for <span class=\\\"lang-zh-TW\\\">\u83ef\u4eba<\/span><span class=\\\"lang-zh-CN\\\">\u534e\u4eba<\/span>.\", accept: [\"chinese\", \"a person of chinese ethnicity\", \"chinese, a person of chinese ethnicity\"] },\n    { type: 'mc', prompt: \"Which phrase means \\\"to set off firecrackers\\\"?\", options: [\"<span class=\\\"lang-zh-TW\\\">\u653e\u97ad\u70ae<\/span><span class=\\\"lang-zh-CN\\\">\u653e\u97ad\u70ae<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u8cbc\u4e0a<\/span><span class=\\\"lang-zh-CN\\\">\u8d34\u4e0a<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u606d\u559c\u767c\u8ca1<\/span><span class=\\\"lang-zh-CN\\\">\u606d\u559c\u53d1\u8d22<\/span>\", \"<span class=\\\"lang-zh-TW\\\">\u5927\u5e74\u521d\u4e00<\/span><span class=\\\"lang-zh-CN\\\">\u5927\u5e74\u521d\u4e00<\/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('#d215-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=\"d215-quiz-progress\">Question ' + (current + 1) + ' of ' + QUIZ_DATA.length + '<\/p>';\n      html += '<p class=\"d215-quiz-prompt\">' + q.prompt + '<\/p>';\n      if (q.type === 'mc') {\n        html += '<div class=\"d215-quiz-options\">';\n        var optOrder = shuffle(q.options.map(function (o, k) { return k; }));\n        for (var oi = 0; oi < optOrder.length; oi++) {\n          var i = optOrder[oi];\n          html += '<button type=\"button\" class=\"d215-quiz-opt\" data-i=\"' + i + '\">' + q.options[i] + '<\/button>';\n        }\n        html += '<\/div>';\n      } else {\n        html += '<div class=\"d215-quiz-input-row\">';\n        html += '<input type=\"text\" class=\"d215-quiz-input\" placeholder=\"Type your answer\">';\n        html += '<button type=\"button\" class=\"d215-quiz-submit\">Submit<\/button>';\n        html += '<\/div>';\n      }\n      html += '<p class=\"d215-quiz-feedback\"><\/p>';\n      html += '<button type=\"button\" class=\"d215-quiz-next\" style=\"display:none;\">Next<\/button>';\n      qRoot.innerHTML = html;\n\n      if (q.type === 'mc') {\n        var opts = qRoot.querySelectorAll('.d215-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) {\n              var bi = parseInt(b.getAttribute('data-i'), 10);\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('.d215-quiz-input');\n        var submitBtn = qRoot.querySelector('.d215-quiz-submit');\n        function submit() {\n          if (answered) return;\n          answered = true;\n          var val = stripTones(input.value || '');\n          var correct = q.accept.map(stripTones).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('.d215-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 = 'd215-quiz-feedback ' + (correct ? 'correct' : 'incorrect');\n        var nextBtn = qRoot.querySelector('.d215-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=\"d215-quiz-score\">' +\n        '<span class=\"d215-quiz-score-num\">' + score + ' \/ ' + QUIZ_DATA.length + '<\/span>' +\n        '<p>Nice work! Want to try again?<\/p>' +\n        '<button type=\"button\" class=\"d215-quiz-retake\">Retake Quiz<\/button>' +\n        '<\/div>';\n      qRoot.querySelector('.d215-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('.d215-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  \/\/ Keep dynamically re-rendered spans (quiz, match-it, flashcards) in step with the site's Text Display choice\n  function syncScript() {\n    var refCN = root.querySelector('.d215-lede .lang-zh-CN');\n    var refTW = root.querySelector('.d215-lede .lang-zh-TW');\n    if (!refCN) return;\n    if (!refTW) return;\n    var cnVis = refCN.offsetParent !== null;\n    var twVis = refTW.offsetParent !== null;\n    if (cnVis === twVis) return;\n    var scopes = root.querySelectorAll('.d215-quiz, .d215-game-board, .d215-flashcard');\n    scopes.forEach(function (sc) {\n      sc.querySelectorAll('.lang-zh-TW').forEach(function (el) { el.style.display = twVis ? '' : 'none'; });\n      sc.querySelectorAll('.lang-zh-CN').forEach(function (el) { el.style.display = cnVis ? '' : 'none'; });\n    });\n  }\n  root.addEventListener('click', function () { setTimeout(syncScript, 0); });\n  setInterval(syncScript, 400);\n  syncScript();\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-2\/\"><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>\n\n\n<p class=\"wp-block-paragraph\"><div><div aria-hidden=\"true\" class=\"wp-block-spacer\" style=\"white-space: normal; height: 33px;\"><\/div><p style=\"white-space: normal;\"><\/p><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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. \u7576\u4ee3\u4e2d\u6587\u8ab2\u7a0b\u5f53\u4ee3\u4e2d\u6587\u8bfe\u7a0b Book 2 \u00b7 Lesson 15\u300c\u904e\u6625\u7bc0\u8fc7\u6625\u8282\u300dLunar New Year \u2014 every word from \u751f\u8a5e\u4e00 and \u751f\u8a5e\u4e8c (Vocabulary I &amp; II),&#8230;<\/p>\n","protected":false},"author":2,"featured_media":11596,"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":[1089],"tags":[],"class_list":["post-13722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1089"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>B2 L15 Vocabulary and Practice - OneDotDot Chinese<\/title>\n<meta name=\"description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e8c\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 2 \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\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"B2 L15 Vocabulary and Practice - OneDotDot Chinese\" \/>\n<meta property=\"og:description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e8c\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 2 \u2013 Lesson 15\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/\" \/>\n<meta property=\"og:site_name\" content=\"OneDotDot Chinese\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-29T10:34:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-11T05:25:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/11\/\u7576\u4ee3\u4e2d\u65872.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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/\"},\"author\":{\"name\":\"tiffany\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"headline\":\"B2 L15 Vocabulary and Practice\",\"datePublished\":\"2026-06-29T10:34:32+00:00\",\"dateModified\":\"2026-10-11T05:25:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/\"},\"wordCount\":219,\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/\u7576\u4ee3\u4e2d\u65872.jpg\",\"articleSection\":[\"\u7576\u4ee3\u4e2d\u6587 2\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/\",\"name\":\"B2 L15 Vocabulary and Practice - OneDotDot Chinese\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/\u7576\u4ee3\u4e2d\u65872.jpg\",\"datePublished\":\"2026-06-29T10:34:32+00:00\",\"dateModified\":\"2026-10-11T05:25:52+00:00\",\"description\":\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e8c\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 2 \u2013 Lesson 15\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/\u7576\u4ee3\u4e2d\u65872.jpg\",\"contentUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/\u7576\u4ee3\u4e2d\u65872.jpg\",\"width\":800,\"height\":300,\"caption\":\"Contemporary Chinese Book 2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2026\\\/06\\\/29\\\/contemporary-chinese-vocabulary-practice-b2l15\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"B2 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":"B2 L15 Vocabulary and Practice - OneDotDot Chinese","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e8c\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 2 \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\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/","og_locale":"en_US","og_type":"article","og_title":"B2 L15 Vocabulary and Practice - OneDotDot Chinese","og_description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e8c\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 2 \u2013 Lesson 15","og_url":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/","og_site_name":"OneDotDot Chinese","article_published_time":"2026-06-29T10:34:32+00:00","article_modified_time":"2026-10-11T05:25:52+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/11\/\u7576\u4ee3\u4e2d\u65872.jpg","type":"image\/jpeg"}],"author":"tiffany","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tiffany","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#article","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/"},"author":{"name":"tiffany","@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"headline":"B2 L15 Vocabulary and Practice","datePublished":"2026-06-29T10:34:32+00:00","dateModified":"2026-10-11T05:25:52+00:00","mainEntityOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/"},"wordCount":219,"publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/11\/\u7576\u4ee3\u4e2d\u65872.jpg","articleSection":["\u7576\u4ee3\u4e2d\u6587 2"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/","url":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/","name":"B2 L15 Vocabulary and Practice - OneDotDot Chinese","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#primaryimage"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/11\/\u7576\u4ee3\u4e2d\u65872.jpg","datePublished":"2026-06-29T10:34:32+00:00","dateModified":"2026-10-11T05:25:52+00:00","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e8c\u518a\u7b2c\u5341\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 2 \u2013 Lesson 15","breadcrumb":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#primaryimage","url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/11\/\u7576\u4ee3\u4e2d\u65872.jpg","contentUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/11\/\u7576\u4ee3\u4e2d\u65872.jpg","width":800,"height":300,"caption":"Contemporary Chinese Book 2"},{"@type":"BreadcrumbList","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2026\/06\/29\/contemporary-chinese-vocabulary-practice-b2l15\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/tiffanysmandarin.com\/"},{"@type":"ListItem","position":2,"name":"B2 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\/11\/\u7576\u4ee3\u4e2d\u65872.jpg","_links":{"self":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/13722","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=13722"}],"version-history":[{"count":3,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/13722\/revisions"}],"predecessor-version":[{"id":18130,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/13722\/revisions\/18130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media\/11596"}],"wp:attachment":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media?parent=13722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/categories?post=13722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/tags?post=13722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}