├── .gitignore ├── 404.html ├── Licence_CC-BY-NC-SA-4.0.html ├── README.md ├── _temp └── css │ └── s_124085_triad_tmp.css ├── chinese ├── chinese-clt-2006-2012.html ├── cjk-tools.html ├── deguoren_xue_hanyu_2003.html ├── dictionaries.html ├── graded-readers.html ├── grammar.html ├── hsk.html ├── index.html ├── intermediatechinese_grammar_2009.html └── modernchinese_beginnerscourse_2_1988.html ├── css ├── default.css ├── righthand_fixed_navigation_layout.css ├── righthand_floating_navigation_layout.css ├── s_124085_triad.css └── systemcolours.css ├── dutch ├── grammatical-gender.html ├── index.html └── niederlaendisch.html ├── english ├── academicenglish.html ├── dictionaries.html ├── index.html ├── shadowing-resources.html ├── shakespeare.html ├── shakespeare_2017-07-25.html └── youtube-channels.html ├── esperanto └── index.html ├── french └── index.html ├── german ├── index.html ├── praepositionen.html ├── verben-rektion.html ├── verben.html └── xuedeyu │ └── index.html ├── img ├── 159621776_fdfdda27c7_medium.jpg ├── HTML5-Logo-Badge_W3C_cc-by.svg ├── LL-SE_proposedAd_CS_04.png ├── brown_listsquare.png ├── cc-licence-by-nc-sa-88x31.png ├── cc-licence-by-sa-88x31.png ├── cc-logo.jpg ├── cc-unported.png ├── orange_listsquare.png ├── orangebrown_listsquare.png ├── orangebrown_listsquare_small.png └── stuttgart-books-refugees_2016-09-d.jpg ├── index.html ├── japanese └── index.html ├── js ├── DOMhelp.js └── cs_scripts.js ├── korean └── index.html ├── latin └── index.html ├── methods └── index.html ├── misc ├── frequency-lists.html ├── glossary.html ├── hardestlanguage.html ├── index.html ├── languagetags.html ├── languagetags.json ├── languagetags.md ├── languagetags_licence.md ├── minimal-pairs.html ├── stackexchange.html ├── stuttgart.html └── teaching-to-refugees.html ├── other-languages └── index.html ├── polyglottism └── index.html ├── research ├── bottleneck-hypothesis.html ├── comprehensibleinput.html ├── ellis_understanding-sla_1985.html ├── index.html └── third-language.html ├── russian └── index.html ├── slovak ├── einstieg-slowakisch-2011.html └── index.html ├── spanish └── index.html ├── stuttgart.html ├── teaching ├── index.html └── teaching-to-refugees.html ├── techniques ├── index.html ├── onlinelearning.html ├── safmeds.html ├── shadowing.html └── spacedrepetition.html ├── tmp.html └── tmpnav.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.bak 2 | *.draft 3 | *.bak.html 4 | *.css~ 5 | *.css~* 6 | *.html~ 7 | *.html~* 8 | *.js~* 9 | *.json~* 10 | *.marks 11 | *.md~* 12 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | --- 2 | permalink: /404.html 3 | --- 4 | 5 | 6 | 7 | 8 | 9 | Page not found! | Language Learning 10 | 11 | 12 | 13 | 14 | 15 | 16 | 22 | 23 | 31 | 32 | 33 |
34 |

Page not found!

35 |
36 | 37 |
38 |

Sorry, 39 |
The page you are looking for cannot be found. 40 |

41 |
    42 |
  1. The page you are looking for is not here or has been deleted.
  2. 43 |
  3. If you followed a link from another page on the same site, please 44 | report the broken link on GitHub. 45 |
  4. 46 |
  5. Please check whether the URL you entered is correct.
  6. 47 |
48 | 49 |
50 |

很抱歉, 51 |
您要访问的页面不存在。 52 |

53 |
    54 |
  1. 您要访问的网页不存在或已被删除。
  2. 55 |
  3. 请检查您输入的网址是否正确。
  4. 56 |
57 |
58 |

It's a topsy-turvy world!

59 |
60 | 61 | 147 | 148 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Language Learning 2 | 3 | **This repo has moved to [GitLab](https://gitlab.com/cstrobbe/languagelearning).** The copy on GitHub has been archived. 4 | 5 | Collection of links and resources (both online and offline) related to learning foreign languages. 6 | 7 | ## How to Submit Isues or Comments 8 | 9 | Go to [issues](https://github.com/cstrobbe/AccessibilityResources/issues) 10 | and use the `New Issue` button. 11 | Submitting issues requires a GitHub account. 12 | 13 | ## Licence 14 | 15 | Copyright: Christophe Strobbe, 2015 – 2022. 16 | 17 | Licence for most of the content: Creative Commons [CC BY-NC-SA 4.0](Licence_CC-BY-NC-SA-4.0.html), 18 | except where noted otherwise (e.g. images borrowed from elsewhere). 19 | 20 | ## Contributing 21 | 22 | I do not really expect external contributions. 23 | However, everyone who makes a pull request to contribute content should explicitly state 24 | in the pull request's description that they make their contribution available under the CC BY-NC-SA 4.0 licence. 25 | 26 | ## How to Clone 27 | 28 | How to clone this repository on the command line: 29 | `git clone https://github.com/cstrobbe/languagelearning.git` 30 | -------------------------------------------------------------------------------- /_temp/css/s_124085_triad_tmp.css: -------------------------------------------------------------------------------- 1 | @import url("righthand_fixed_navigation_layout.css"); 2 | 3 | body { 4 | font-family: 'Libre Baskerville', 'Trebuchet MS', Verdana, Helvetica, sans-serif; 5 | background-color: transparent; color: #282828; 6 | } 7 | 8 | header { 9 | background-color: #09316D; 10 | color: #89A0C2; 11 | /*border-radius: 4px;*/ 12 | transform: rotate(-2deg); /* CSS 3 transforms: https://www.w3.org/TR/css-transforms-1/#typedef-transform-function */ 13 | /* 14 | margin-top: -40px; 15 | border-top: 20px solid #09316D; 16 | margin-right: -16000px; 17 | border-right: 16000px solid red; 18 | margin-left: -100px; 19 | border-left: 100px solid #09316D;*/ 20 | } 21 | h1 { 22 | margin-top: 36px; 23 | transform: rotate(2deg); 24 | } 25 | 26 | nav { 27 | background-color: #EEC62A; 28 | color: inherit; 29 | border-radius: 4px; 30 | } 31 | 32 | nav h2 { 33 | background-color: transparent; 34 | color: #7C3100; 35 | } 36 | 37 | nav > ul { 38 | color: #41409A; 39 | background-color: transparent; 40 | } 41 | 42 | nav > ul > li { 43 | color: inherit; 44 | background-color: transparent; 45 | } 46 | 47 | nav > ul > li > ul { 48 | color: inherit; 49 | background-color: transparent; 50 | } 51 | 52 | nav > ul > li.active a, 53 | nav > ul > li > ul > li.active a { 54 | border-left: 10px solid #A58400; 55 | } 56 | nav > ul > li.active > ul > li a { 57 | border-left: 10px solid transparent; 58 | } 59 | nav > ul > li.active > ul > li a:hover, 60 | nav > ul > li.active > ul > li a:focus { 61 | border-left: 10px solid #7C6300; 62 | } 63 | 64 | nav a:link, 65 | nav a:visited, 66 | nav a:hover, nav a:focus, 67 | nav a:active { 68 | font-size: 1em; 69 | text-decoration: none; 70 | padding-left: 2px; 71 | } 72 | 73 | nav a:link, 74 | nav a:visited { 75 | border-top: 1px solid transparent; 76 | border-right: 10px solid transparent; 77 | border-bottom: 1px solid transparent; 78 | border-left: 10px solid transparent; 79 | background-color: #FDDB58; 80 | color: #321900; 81 | } 82 | 83 | nav a:hover, nav a:focus, 84 | nav a:active { 85 | border-top: 1px solid #7C6300; 86 | border-right: 10px solid #7C6300; 87 | border-bottom: 1px solid #7C6300; 88 | border-left: 10px solid #7C6300; 89 | } 90 | 91 | a:link, a:visited { 92 | background-color: transparent; 93 | color: #052452; 94 | } 95 | 96 | a:hover, a:focus, a:active { 97 | background-color: #09316D; 98 | color: #FFF; 99 | text-decoration: none; 100 | } 101 | 102 | footer { 103 | border-color: #A54100; 104 | border-style: solid; 105 | color: #7C3100; 106 | background-color: #FFF; 107 | } 108 | 109 | footer a:link, footer a:visited { 110 | background-color: #FFF; 111 | color: #7C3100; 112 | } 113 | 114 | footer a:hover, footer a:focus, footer a:active { 115 | background-color: #A54100; 116 | color: #FFF; 117 | } 118 | 119 | 120 | h2, h3, h4, h5, h6 { 121 | color: #7C3100; 122 | background-color: transparent; 123 | } 124 | 125 | main ul li { 126 | /*list-style-type: square;*/ 127 | list-style-image: url('../img/orangebrown_listsquare.png'); 128 | } 129 | 130 | #introquote { 131 | font-size: 1.1em; 132 | font-style: italic; 133 | width: 600px; 134 | margin: 0.25em 0; 135 | padding: 0.25em 40px; 136 | line-height: 1.45; 137 | position: relative; 138 | background-color: transparent; 139 | color: #222222; 140 | border: 0; 141 | } 142 | #introquote:before { 143 | display: block; 144 | content: "\201C"; 145 | font-size: 80px; 146 | position: absolute; 147 | left: -20px; 148 | top: -20px; 149 | color: #7a7a7a; 150 | } 151 | 152 | blockquote { 153 | background-color: #FDDB58; 154 | color: #321900; 155 | padding: 4px 12px; 156 | border: 2px solid #FDDB58; 157 | border-radius: 10px; 158 | } 159 | blockquote cite { 160 | color: #555; 161 | font-size: 14px; 162 | display: block; 163 | margin-top: 5px; 164 | } 165 | 166 | blockquote cite:before { 167 | content: "\2014 \2009"; 168 | } 169 | 170 | blockquote.neutralquote { 171 | margin: 0 0 0 0; 172 | } 173 | blockquote.neutralquote blockquote, blockquote.neutralquote p { 174 | margin-top: 0; 175 | margin-bottom: 0; 176 | } 177 | 178 | dt, dd { 179 | border-bottom: 1px solid #7C3100; 180 | color: inherit; 181 | line-height: 1.4em; 182 | padding-left: 4px; 183 | } 184 | dt { 185 | background-color: #FDDB58; 186 | margin-top: 4px; 187 | font-weight: bolder; 188 | } 189 | dd { 190 | border-left: 1px solid #7C3100; 191 | margin-top: 2px; 192 | } 193 | 194 | table { 195 | border-collapse: collapse; 196 | margin-bottom: 12pt; 197 | } 198 | th, td { 199 | border: 1px solid gray; 200 | padding: 4px; 201 | } 202 | tbody tr th { 203 | text-align: left; 204 | } 205 | 206 | .solutions strong { 207 | color: green; 208 | background-color: transparent; 209 | } 210 | .solutions del { 211 | color: red; 212 | background-color: transparent; 213 | } 214 | .solutions ins { 215 | color: #09316D; 216 | background-color: transparent; 217 | text-decoration: none; 218 | font-weight: bold; 219 | } 220 | .solutions del:before { 221 | content: "*"; 222 | color: red; 223 | background-color: transparent; 224 | } 225 | 226 | /* see http://www.kapba.de/AbkhazianFonts.html http://www.eaglefonts.com/truetype-abkhaz---adyghe---kabardian---kazakh-fonts-195.htm */ 227 | *[lang=ab] { 228 | font-family: Apsni, 'CC Arial', 'Times Abkhaz', sans-serif; 229 | } 230 | *[lang=chr] { 231 | /* Digohweli Cherokee Unicode font @@ see http://www.cherokee.org/AboutTheNation/Language/CherokeeFont.aspx */ 232 | } 233 | *[lang=ja] { 234 | font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif; 235 | /*see http://stackoverflow.com/questions/14563064/japanese-standard-web-fonts*/ 236 | } 237 | /* languages using the Tibetan script: */ 238 | *[lang=adx], *[lang=khg], *[lang=bo], *[lang=dz], *[lang=lbj] { 239 | font-size: 1.4em; 240 | } 241 | 242 | /* Other Chinese fonts: "FangSong", "仿宋"; see http://www.kendraschaefer.com/2012/06/chinese-standard-web-fonts-the-ultimate-guide-to-css-font-family-declarations-for-web-design-in-simplified-chinese/ & http://webdesign.tutsplus.com/articles/the-complete-beginners-guide-to-chinese-fonts--cms-23444 */ 243 | *[lang=zh-CN], rb[lang=zh-CN], span[lang=zh-CN], .solutions[lang=zh-CN], .solutions span[lang=zh-CN], td[lang=zh-CN] { 244 | font-family: "KaiTi", "楷体", STKaiti, "华文楷体", STFangSong, "华文仿宋", Simsun, 'MS Song', Song, STSong; 245 | } 246 | *[lang=zh-CN], rb[lang=zh-CN], span[lang=zh-CN], .solutions[lang=zh-CN], .solutions span[lang=zh-CN], nav li a[lang=zh-CN] { /*not: .solutions :lang(zh-CN)*/ 247 | font-size: 1.3em; 248 | } 249 | .solutions[lang=zh-CN] span[lang=en], .solutions[lang=zh-CN] span[lang=en-GB], td.pinyin[lang=zh-CN], td[lang=zh-CN] span.pinyin { 250 | font-family: 'Libre Baskerville', 'Trebuchet MS', Verdana, Helvetica, sans-serif; 251 | } 252 | .solutions[lang=zh-CN] span[lang=en], .solutions[lang=zh-CN] span[lang=en-GB] { 253 | font-size: 0.8em; 254 | } 255 | p.solutions[lang=zh-CN]{ 256 | text-indent: 2em; 257 | } 258 | td[lang=zh-CN] { 259 | font-size: 1.4em; 260 | } 261 | td.pinyin[lang=zh-CN] { 262 | font-size: 1em; 263 | } 264 | td[lang=zh-CN] span.pinyin { 265 | font-size: 0.7em; 266 | } 267 | 268 | -------------------------------------------------------------------------------- /chinese/cjk-tools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tools for Chinese, Japanese and Korean (CJK) | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

Tools for Chinese, Japanese and Korean (CJK)

17 |
18 | 19 | 104 | 105 |
106 | 107 |
108 |

Pinyin Input

109 | 146 |
147 | 148 |
149 |

Input Methods

150 | 162 |
163 | 164 |
165 |

International Phonetic Alphabet (IPA)

166 | 223 | 224 |

There are also a number of libraries that don't have a licence. Before using these, 225 | one should contact the developers about the licence. 226 | (The absence of a licence does not mean that the code has an open-source licence 227 | but that the developers have chosen not to disclose what the licence is.) 228 |

229 |
230 | 231 |
232 |

Stroke Order Animations

233 | 251 |
252 |
253 | 254 | 265 | 266 | 267 | -------------------------------------------------------------------------------- /chinese/deguoren_xue_hanyu_2003.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Chinesisch für Deutsche (2003) | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

Chinesisch für Deutsche (2003)

17 |
18 | 19 | 104 | 105 |
106 |

邓少君 (Dèng Shàojūn) & 张欣 (Zhāng Xīn) (Deutsche Übersetzung: 翁裕斌 Wēng Yùbīn): 107 | 德国人学汉语 / Chinesisch für Deutsche. 108 | Shanghai: 海文音像出版社 (Hǎiwén yīnxiàng chūbǎnshè), 2003. 109 | ISBN 7-88394-420-7. 110 |

111 | 112 | 115 | 116 |

Buchkritik

117 |

Dieses Lehrbuch ist an erster Stelle für Deutschsprachige gedacht, die in China arbeiten 118 | und die Alltagssprache lernen wollen. Das Buch ist in drei Teile gegliedert. 119 | Der erste Teil (Seite 3 - 289) umfasst 44 Lektionen, die Alltagssituationen behandeln. 120 | Der zweite Teil (Seite 293 - 394) umfasst 235 Einheiten mit den häufigsten Satzmodellen der chinesischen Sprache; 121 | jedes Satzmodell wird mit mindestens vier Beispielsätzen und deren deutschen Übersetzungen illustriert. 122 | Der dritte und letzte Teil (Seite 395 - 415) umfasst 12 kurze Lesetexte und eine Einheit mit Rätseln. 123 | Das Buch wird ergänzt durch eine CD mit Aufnahmen von den Texten aus den 44 Lektionen des ersten Teils. 124 |

125 |

Vor dem ersten Teil wird auf zwei Seiten Hanyu Pinyin erklärt, nicht auf Deutsch, sondern auf Chinesisch. 126 | Die nächsten zwei Seiten erklären sehr kurz die wichtigsten Striche der chinesischen Schriftzeichen, und 127 | deren Strichreihenfolge. Auch diese Erklärung ist auf Chinesisch, eine Sprache, die der Lernende 128 | am Anfang des Buches noch gar nicht beherrscht. 129 |

130 |

Obwohl das Buch an erster Stelle für das Selbststudium gedacht ist, haben die Autoren 131 | versäumt zu erklären, wie man selbstständig eine Fremdsprache lernt. Sie erklären nicht, wie man am 132 | besten Vokabeln, Schriftzeichen und Grammatik lernt; sie lassen den Lernenden in dieser Hinsicht völlig im Stich. 133 |

134 |

Die Lektionen bestehen jeweils aus 6 Teilen. 135 | Der erste Teil ist der Text der Lektion. Über jedem Satz steht die Pinyin-Transkription; neben dem 136 | chinesischen Text findet man eine deutsche Übersetzung. 137 | Eine gesprochene Fassung dieser Texte findet man auf der CD; die Aussprache in diesen Aufnahmen ist von hoher Qualität. 138 | Die Texte sehen optisch immer aus wie Dialoge und werden auf der CD auch als Dialoge vorgelesen, 139 | aber dieser Eindrück täuscht. 140 | In Wirklichkeit sind viele Sätze Alternativen für einen vorherigen Satz, z.B. alternative Antworten auf eine Frage. 141 | Allerdings wechseln die Sprecher auf der CD sich nach jedem Satz ab, sodass ihre Rollen oft vertauscht werden. 142 | Hier folgt ein Beispiel aus der 2. Lektion: 143 |

144 |
    145 |
  1. (Männerstimme) 你认识米勒太太吗?
  2. 146 |
  3. (Frauenstimme) 认识,她是我的邻居。
  4. 147 |
  5. (Männerstimme) 早就认识了,她是我的好朋友。
  6. 148 |
  7. (Frauenstimme) 我不认识她。
  8. 149 |
  9. (Männerstimme) 我跟她没见过面。
  10. 150 |
151 |

Die deutschen Übersetzungen sind manchmal komisch. Hier folgen einige Beispiele: 152 |

153 | 177 |

Der zweite Teil der Lektion umfasst eine oder zwei (meist grammatikalische) Erklärungen zum Text. 178 | Der dritte Teil illustriert einige wichtige Satzmuster aus dem Text anhand von mehreren Beispielsätzen. 179 | Diese Beispielsätze haben zwar eine Pinyin-Transkription aber keine Übersetzung. Dazu kommt noch, 180 | dass diese Sätze neue Vokabeln einführen, zum Beispiel in der ersten Lektion: 181 | 向 ... 介绍 und 道歉. Dies ist allerdings kein 182 | Wortschatz für Anfänger, sondern für die Mittelstufe. Der Lernende muss selbst mit den neuen 183 | Vokabeln zurechtkommen und irgendwie lernen, wie man in einem chinesischen Wörterbuch ein Wort nachschlägt, 184 | was gar nicht selbstverständlich ist. 185 |
Im zweiten oder im dritten Teil der Lektion wäre es nützlich auf die Satzmuster im zweiten Teil 186 | des Buches zu verweisen. Leider haben die Autoren dies unterlassen; dieser Mangel 187 | wurde erst in der zweiten Auflage 2007 behoben. 188 |

189 |

Der vierte Teil der Lektion ist eine Wortschatzliste. In dieser Liste stehen sowohl Vokabeln aus dem 190 | Text, als auch neue Vokabeln, für die man in der Lektion keine Beispielsätze finden kann. 191 | Oft tauchen solche Vokabeln erst in einer späteren Lektion in einem Satz auf. 192 | Offensichtlich betrachten die Autoren das Pauken von Vokabeln, die man nie in einem Satz gesehen hat, 193 | als eine gute Lernstrategie. (Die chinesische Fremdsprachendidaktik hat einen Rückstand von mehreren 194 | Jahrzehnten im Vergleich zum Westen.) 195 |
Die deutschen Übersetzungen der Vokabeln sind manchmal fehlerhaft. Hier folgen einige Beispiele: 196 |

197 | 206 |

Der fünfte Teil besteht aus Übungen und dem Text einer Konversation. Es gibt meistens drei Typen von 207 | Übungen: Dialoge ergänzen, Fragen beantworten oder Sätze umwandeln, und Ablösungsübungen. 208 | Sowohl in diesen Übungen als auch in der Konversation werden Vokabeln und Schriftzeichen benutzt, die nicht vorher in 209 | in einem Text oder einer Vokabelliste eingesetzt wurden. 210 | Außerdem enthält die CD keine Aufnahmen von den Konversationen, obwohl dies sehr nützlich wäre. 211 |

212 |

Der sechste Teil der Lektion enthält die Lösungen für eine oder zwei der Übungen aus dem fünften Teil. 213 | Für Dialoge, die der Lernende selbst ergänzen muss, gibt es meistens keine Lösungen. Für die anderen 214 | Übungen wird jeweils nur eine mögliche Lösung angeboten, auch wenn manchmal mehrere alternative 215 | Lösungen möglich wären. Auch hier bietet das Buch zu wenig Unterstützung beim Selbststudium. 216 |

217 |

Zusammenfassend kann man sagen, dass das Buch für das Selbststudium ungeeignet ist. 218 | Ein didaktisches Konzept oder ein logischer Aufbau (vor allem was Wortschatz betrifft) fehlen gänzlich. 219 | Fazit: Caveat emptor! 220 |

221 |
222 | 223 | 227 | 228 | 229 | -------------------------------------------------------------------------------- /chinese/dictionaries.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Chinese Dictionaries | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

Chinese Dictionaries

17 |
18 | 19 | 104 | 105 |
106 |

This page covers traditional dictionaries and other tools that you can use to look up the meaning of words 107 | (but which are not dictionaries). 108 |
109 | Chinese dictionaries need to fulfil a few requirements that are irrelevant (or sometimes less relevant) 110 | to dictionaries for Indo-European languages: 111 |

112 | 140 | 141 |

Online Dictionaries

142 | 226 | 227 |

Other Tools and Resources

228 |

229 | Work in progress. 230 | See Dictionaries on Chinese Language Stack Exchange. 231 |

232 | 251 | 252 |
253 | 254 | 269 | 270 | 271 | -------------------------------------------------------------------------------- /chinese/graded-readers.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Graded Readers for Chinese 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

Graded Readers for Chinese

17 |
18 | 19 | 105 | 106 |
107 |

Graded readers are books that use a simplified language (especially, a restricted set of words 108 | and simple grammar) to support extensive reading. 109 | Graded readers are typically available for different levels which can be matched to the level of the learner, 110 | and can therefore provide 111 | comprehensible input. 112 | This page reviews several series of graded readers for Standard Chinese. 113 |

114 | 115 |

Graded Readers Using Simplified Chinese Characters

116 |

Series to be covered:

117 | 134 | 135 |

Chinese Breeze

136 |

Chinese Breeze (汉语风) is a series of graded readers published by 137 | Peking University Press (北京大学出版社). According to the publisher, 138 | the series has eight levels, although no books at the last four levels appear to be available. 139 |

140 | 150 |

The stories in the books are between 8,000 to 30,000 characters long. 151 | The contain relatively short chapters with illustrations on most of the pages. 152 | The stories are written in Chinese characters only, without pinyin. 153 | Any words that are not part of the list of base words are explained in a footnote 154 | that gives the word's pinyin transcription and an English translation. 155 | In addition to the story itself, each book also has the following sections: 156 | a vocabulary index that contains all the words explained in the footnotes, 157 | a set of exercises that test your understanding, and a key to the exercises. 158 | Each book has a CD with MP3 files with a spoken 159 | version of the story – at two speeds: normal and slow. 160 |

161 |

Below are a few titles:

162 | 201 | 202 | 203 |

Other Materials

204 | 230 |
231 | 232 | 247 | 248 | 249 | -------------------------------------------------------------------------------- /css/default.css: -------------------------------------------------------------------------------- 1 | @import url("righthand_floating_navigation_layout.css"); 2 | 3 | body { 4 | font-family: 'Libre Baskerville', 'Trebuchet MS', Verdana, Helvetica, sans-serif; 5 | } 6 | 7 | /* 8 | nav > ul > li.active a, nav > ul > li > ul > li.active a { 9 | border-left: 10px solid #A58400; 10 | } 11 | */ 12 | 13 | nav a:link, 14 | nav a:visited, 15 | nav a:hover, nav a:focus, 16 | nav a:active { 17 | /*background-color: transparent; color: #7C6300; */ 18 | } 19 | 20 | nav a:link, 21 | nav a:visited { 22 | border-top: 1px solid transparent; 23 | border-right: 10px solid transparent; 24 | border-bottom: 1px solid transparent; 25 | border-left: 10px solid transparent; 26 | /*color: #321900; 27 | background-color: #FDDB58;*/ 28 | } 29 | 30 | /*nav a:hover, nav a:focus, 31 | nav a:active { 32 | border-top: 1px solid #7C6300; 33 | border-right: 10px solid #7C6300; 34 | border-bottom: 1px solid #7C6300; 35 | border-left: 10px solid #7C6300; 36 | }*/ 37 | 38 | /*a:link { 39 | background-color: transparent; 40 | color: #052452; 41 | }*/ 42 | 43 | a:hover, a:focus, a:active { 44 | /*background-color: #09316D; 45 | color: #FFF;*/ 46 | text-decoration: none; 47 | } 48 | 49 | 50 | footer a:link, footer a:visited { 51 | } 52 | 53 | footer a:hover, footer a:focus, footer a:active { 54 | } 55 | 56 | 57 | h2, h3, h4, h5, h6 { 58 | /*color: #7C3100; ; 59 | background-color: transparent;*/ 60 | } 61 | 62 | main ul li { 63 | list-style-type: square; 64 | } 65 | 66 | .uppercase { text-transform: uppercase; } 67 | -------------------------------------------------------------------------------- /css/righthand_fixed_navigation_layout.css: -------------------------------------------------------------------------------- 1 | 2 | header, nav, main, footer { 3 | max-width: 45em; /* The 70em specified in WCAG-TECH C20 is much too wide: https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20160317/C20 */ 4 | clear: both; 5 | display: block; 6 | margin-left: 20px; 7 | padding-left: 10px; 8 | } 9 | 10 | header, main, footer { 11 | margin-right: 18em; 12 | } 13 | 14 | header { 15 | padding-top: 8px; padding-bottom: 4px; 16 | margin-bottom: 24px; 17 | } 18 | 19 | nav { 20 | position: fixed; 21 | width: 16em; /* @@TODO check min-width and max-width */ 22 | height: auto; 23 | /*padding: 0;*//*'none' is not valid; '0' has undesired effect*/ 24 | top: .5em; 25 | right: 20px; 26 | bottom: auto; 27 | left: auto; 28 | padding-bottom: 10px; 29 | /*overflow-x: auto;*/ 30 | overflow-y: auto; 31 | box-shadow: -.1em 0 .25em rgba(0,0,0,.1) inset; 32 | z-index: 1; 33 | } 34 | 35 | nav#sitemap { 36 | position: relative; 37 | width: auto; 38 | margin-left: 40px; 39 | } 40 | 41 | nav h2 { 42 | margin-top: 6px; margin-bottom: 0; 43 | font-size: 1.4em; 44 | } 45 | 46 | nav a { 47 | display: block; 48 | height: 1.4em; 49 | margin-bottom: 10px; 50 | } 51 | 52 | nav > ul { 53 | list-style-type: none; 54 | margin-left: 0; 55 | margin-top: 0; 56 | margin-bottom: 0; 57 | padding: 6px 0; 58 | } 59 | 60 | nav > ul > li { 61 | margin-bottom: 6px; 62 | margin-right: 20px; 63 | margin-left: -20px; 64 | font-size: 1.05em; 65 | } 66 | 67 | nav > ul > li > ul { 68 | list-style-type: none; 69 | font-size: 0.94em; 70 | margin-left: 0; 71 | padding-left: 20px; 72 | } 73 | 74 | nav > ul > li > ul > li { 75 | margin-top: 2px; 76 | } 77 | 78 | nav > ul > li.active a, nav > ul > li > ul > li.active a { 79 | cursor: default; 80 | } 81 | 82 | nav > ul > li.active > ul > li > a { 83 | border-left: none; 84 | cursor: pointer; 85 | } 86 | 87 | nav a:link, 88 | nav a:visited, 89 | nav a:hover, nav a:focus, 90 | nav a:active { 91 | font-size: 1em; 92 | text-decoration: none; 93 | padding-left: 2px; 94 | } 95 | 96 | main a, footer a { 97 | padding-right: 2px; padding-left: 2px; 98 | } 99 | 100 | main h2 { 101 | margin-top: 30px; 102 | } 103 | 104 | aside { 105 | padding: 20px; 106 | } 107 | 108 | footer { 109 | margin-top: 60px; 110 | padding-left: 4px; 111 | border-width: 4px 0px; 112 | border-style: solid; 113 | } 114 | 115 | footer p { 116 | font-size: 0.94em; 117 | } 118 | 119 | footer p a[rel=license]:first-child:hover, footer p a[rel=license]:first-child:focus { 120 | background-color: transparent; 121 | } 122 | 123 | h1 { 124 | letter-spacing: 0.15em; 125 | } 126 | 127 | rp, rt { 128 | display: none; 129 | } 130 | 131 | .booktitle, .journal, .proceedings, .conference, .editedvolume, .phdthesis, .magazine, .newspaper, .website, .blog { 132 | font-style: italic; 133 | } 134 | 135 | .booktitle[lang="zh-CN"], .booktitle *[lang="zh-CN"] { 136 | font-style: normal; 137 | } 138 | 139 | .hidden, .notyet { 140 | display: none; 141 | } 142 | 143 | .homePageDecorativeImg { 144 | /*float: right;*/ 145 | padding: 0; 146 | margin-top: 30px; 147 | margin-left: 0; 148 | } 149 | 150 | a.imgurl, a.imgurl:visited, a.imgurl:hover, a.imgurl:focus, a.imgurl:active, a.imgurl { 151 | border: none; padding: 0; background: transparent; 152 | } 153 | 154 | /* see https://www.w3.org/TR/xhtml-media-types/style/ruby.css - used in https://www.w3.org/TR/xhtml-media-types/ */ 155 | ruby { 156 | display: inline-table; 157 | } 158 | 159 | ruby * { 160 | display: inline; 161 | line-height: 100%; 162 | margin: 0; 163 | padding: 0; 164 | position: static; 165 | text-indent: 0; 166 | text-align: center; 167 | white-space: nowrap; 168 | } 169 | 170 | ruby > * { 171 | display: table-row-group; 172 | line-height: 100%; /*90%*/ 173 | } 174 | 175 | ruby > rt, ruby rtc { 176 | display: table-header-group; 177 | font-size: 70%; 178 | line-height: 40%; 179 | } 180 | 181 | ruby rtc + rtc { 182 | display: table-footer-group; 183 | } 184 | 185 | ruby rbc > *, ruby rtc > * { 186 | display: table-cell; 187 | } 188 | 189 | ruby rp { 190 | display: none; 191 | } 192 | 193 | *|*:link ruby rt, 194 | *|*:visited ruby rt, 195 | *|*:link ruby rtc, 196 | *|*:visited ruby rtc { 197 | text-decoration: none; 198 | } -------------------------------------------------------------------------------- /css/righthand_floating_navigation_layout.css: -------------------------------------------------------------------------------- 1 | 2 | body { 3 | max-width: 70em; 4 | margin: auto; /*centre content in viewport; added 24.12.2016*/ 5 | background-color: #FFF; 6 | margin-top: 16px; 7 | } 8 | 9 | body#languagetags { 10 | max-width: none; 11 | } 12 | body#languagetags header, body#languagetags main, body#languagetags footer { 13 | max-width: 72%; 14 | } 15 | 16 | /*body p.toplinks { 17 | margin-top: 0; 18 | padding: 4px; 19 | }*/ 20 | 21 | header, nav, main, footer { 22 | max-width: 45em; /* The 70em specified in WCAG-TECH C20 is much too wide: https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20160317/C20 */ 23 | clear: both; 24 | display: block; 25 | margin-left: 20px; 26 | padding-left: 10px; 27 | } 28 | 29 | header, main, footer { 30 | margin-right: 18em; 31 | } 32 | 33 | header { 34 | padding-top: 8px; padding-bottom: 4px; 35 | margin-bottom: 24px; 36 | } 37 | 38 | header, main, nav { 39 | clear: none; 40 | } 41 | 42 | nav { 43 | position: relative; 44 | margin-top: -128px; /*w p.toplinks in body:-144px*/ /*@@ask StackOverflow: why is this even necessary?*/ 45 | float: right; 46 | width: 16em; /* @@TODO check min-width and max-width */ 47 | height: auto; 48 | /*padding: 0;*//*'none' is not valid; '0' has undesired effect*/ 49 | top: .5em; 50 | right: 20px; 51 | bottom: auto; 52 | left: auto; 53 | padding-bottom: 10px; 54 | } 55 | 56 | nav#sitemap { 57 | position: relative; 58 | width: auto; 59 | margin-left: 40px; 60 | } 61 | 62 | nav h2 { 63 | margin-top: 6px; margin-bottom: 0; 64 | font-size: 1.4em; 65 | } 66 | 67 | nav a { 68 | display: block; 69 | height: 1.4em; 70 | margin-bottom: 10px; 71 | } 72 | 73 | nav > ul { 74 | list-style-type: none; 75 | margin-left: 0; 76 | margin-top: 0; 77 | margin-bottom: 0; 78 | padding: 6px 0; 79 | } 80 | 81 | nav > ul > li { 82 | margin-bottom: 6px; 83 | margin-right: 20px; 84 | margin-left: -20px; 85 | font-size: 1.05em; 86 | } 87 | 88 | nav > ul > li > ul { 89 | list-style-type: none; 90 | font-size: 0.94em; 91 | margin-left: 0; 92 | padding-left: 20px; 93 | } 94 | 95 | nav > ul > li > ul > li { 96 | margin-top: 2px; 97 | } 98 | 99 | nav > ul > li.active a, nav > ul > li > ul > li.active a { 100 | cursor: default; 101 | } 102 | 103 | nav > ul > li.active > ul > li > a { 104 | border-left: none; 105 | cursor: pointer; 106 | } 107 | 108 | nav a:link, 109 | nav a:visited, 110 | nav a:hover, nav a:focus, 111 | nav a:active { 112 | font-size: 1em; 113 | text-decoration: none; 114 | /*padding-left: 2px;*/ 115 | } 116 | 117 | /*main a, footer a { 118 | padding-right: 2px; padding-left: 2px; 119 | }*/ 120 | 121 | main h2 { 122 | margin-top: 30px; 123 | } 124 | 125 | aside { 126 | padding: 20px; 127 | } 128 | 129 | footer { 130 | margin-top: 60px; 131 | padding-left: 4px; 132 | border-width: 4px 0px; 133 | border-style: solid; 134 | } 135 | 136 | footer p { 137 | font-size: 0.94em; 138 | } 139 | 140 | footer p a[rel=license]:first-child:hover, footer p a[rel=license]:first-child:focus { 141 | background-color: transparent; 142 | } 143 | 144 | h1 { 145 | letter-spacing: 0.15em; 146 | } 147 | 148 | rp, rt { 149 | display: none; 150 | } 151 | 152 | .booktitle, .journal, .proceedings, .conference, .editedvolume, .phdthesis, .magazine, .newspaper, .website, .blog, i.ytchannel, .play { 153 | font-style: italic; 154 | } 155 | 156 | .booktitle[lang="zh-CN"], .booktitle *[lang="zh-CN"] { 157 | font-style: normal; 158 | } 159 | 160 | .hidden, .notyet { 161 | display: none; 162 | } 163 | 164 | .homePageDecorativeImg { 165 | /*float: right;*/ 166 | padding: 0; 167 | margin-top: 30px; 168 | margin-left: 0; 169 | } 170 | 171 | a.imgurl, a.imgurl:visited, a.imgurl:hover, a.imgurl:focus, a.imgurl:active, a.imgurl { 172 | border: none; padding: 0; background: transparent; 173 | } 174 | 175 | /* see https://www.w3.org/TR/xhtml-media-types/style/ruby.css - used in https://www.w3.org/TR/xhtml-media-types/ */ 176 | ruby { 177 | display: inline-table; 178 | } 179 | 180 | ruby * { 181 | display: inline; 182 | line-height: 100%; 183 | margin: 0; 184 | padding: 0; 185 | position: static; 186 | text-indent: 0; 187 | text-align: center; 188 | white-space: nowrap; 189 | } 190 | 191 | ruby > * { 192 | display: table-row-group; 193 | line-height: 100%; /*90%*/ 194 | } 195 | 196 | ruby > rt, ruby rtc { 197 | display: table-header-group; 198 | font-size: 70%; 199 | line-height: 40%; 200 | } 201 | 202 | ruby rtc + rtc { 203 | display: table-footer-group; 204 | } 205 | 206 | ruby rbc > *, ruby rtc > * { 207 | display: table-cell; 208 | } 209 | 210 | ruby rp { 211 | display: none; 212 | } 213 | 214 | *|*:link ruby rt, 215 | *|*:visited ruby rt, 216 | *|*:link ruby rtc, 217 | *|*:visited ruby rtc { 218 | text-decoration: none; 219 | } -------------------------------------------------------------------------------- /css/s_124085_triad.css: -------------------------------------------------------------------------------- 1 | @import url("righthand_floating_navigation_layout.css"); 2 | 3 | p.site-moved-warning { border: 2px solid red; padding: 5px; 4 | font-size: 1.5em; 5 | } 6 | 7 | body, *[lang=zh-CN] *[lang=en] { 8 | font-family: 'Libre Baskerville', 'Trebuchet MS', Verdana, Helvetica, sans-serif; 9 | background-color: transparent; color: #282828; 10 | font-size: 1em; line-height: 1.4em; 11 | } 12 | 13 | *[lang=zh-CN] *[lang=en] { 14 | font-size: 1rem; 15 | } 16 | 17 | header { 18 | background-color: #09316D; 19 | color: #89A0C2; 20 | /*border-radius: 4px;*/ 21 | transform: rotate(-2deg); /* CSS 3 transforms: https://www.w3.org/TR/css-transforms-1/#typedef-transform-function */ 22 | /* 23 | margin-top: -40px; 24 | border-top: 20px solid #09316D; 25 | margin-right: -16000px; 26 | border-right: 16000px solid red; 27 | margin-left: -100px; 28 | border-left: 100px solid #09316D;*/ 29 | } 30 | h1 { 31 | margin-top: 36px; 32 | line-height: 1.3em; 33 | } 34 | h1, header p.toplinks { 35 | transform: rotate(2deg); 36 | /*border: 1px dotted red;*/ 37 | } 38 | /*body p.toplinks { 39 | background-color: #09316D; 40 | color: #FFF; 41 | } 42 | p.toplinks a:link, p.toplinks a:visited { 43 | background-color: #09316D; 44 | color: #FFF; 45 | } 46 | p.toplinks a:hover, p.toplinks a:focus, p.toplinks a:active { 47 | background-color: #09316D; 48 | color: #FFF; 49 | text-decoration: none; 50 | }*/ 51 | 52 | nav { 53 | background-color: #EEC62A; 54 | color: inherit; 55 | border-radius: 4px; 56 | } 57 | 58 | nav h2 { 59 | background-color: transparent; 60 | color: #7C3100; 61 | } 62 | 63 | nav > ul { 64 | color: #41409A; 65 | background-color: transparent; 66 | } 67 | 68 | nav > ul > li { 69 | color: inherit; 70 | background-color: transparent; 71 | } 72 | 73 | nav > ul > li > ul { 74 | color: inherit; 75 | background-color: transparent; 76 | } 77 | 78 | nav > ul > li.active a, 79 | nav > ul > li > ul > li.active a { 80 | border-left: 10px solid #A58400; 81 | } 82 | nav > ul > li.active > ul > li a { 83 | border-left: 10px solid transparent; 84 | } 85 | nav > ul > li.active > ul > li a:hover, 86 | nav > ul > li.active > ul > li a:focus { 87 | border-left: 10px solid #7C6300; 88 | } 89 | 90 | nav a:link, 91 | nav a:visited, 92 | nav a:hover, nav a:focus, 93 | nav a:active { 94 | font-size: 1em; 95 | text-decoration: none; 96 | /*padding-left: 2px;*/ 97 | } 98 | 99 | nav a:link, 100 | nav a:visited { 101 | border-top: 1px solid transparent; 102 | border-right: 10px solid transparent; 103 | border-bottom: 1px solid transparent; 104 | border-left: 10px solid transparent; 105 | background-color: #FDDB58; 106 | color: #321900; 107 | } 108 | 109 | nav a:hover, nav a:focus, 110 | nav a:active { 111 | border-top: 1px solid #7C6300; 112 | border-right: 10px solid #7C6300; 113 | border-bottom: 1px solid #7C6300; 114 | border-left: 10px solid #7C6300; 115 | } 116 | 117 | a:link, a:visited { 118 | background-color: transparent; 119 | color: #052452; 120 | } 121 | 122 | a:hover, a:focus, a:active { 123 | background-color: #09316D; 124 | color: #FFF; 125 | text-decoration: none; 126 | } 127 | 128 | footer { 129 | border-color: #A54100; 130 | border-style: solid; 131 | color: #7C3100; 132 | background-color: #FFF; 133 | } 134 | 135 | footer a:link, footer a:visited { 136 | background-color: #FFF; 137 | color: #7C3100; 138 | } 139 | 140 | footer a:hover, footer a:focus, footer a:active { 141 | background-color: #A54100; 142 | color: #FFF; 143 | } 144 | 145 | 146 | h2, h3, h4, h5, h6 { 147 | color: #7C3100; 148 | background-color: transparent; 149 | } 150 | 151 | main ul > li { 152 | /*list-style-type: square;*/ 153 | list-style-image: url('../img/orangebrown_listsquare.png'); 154 | } 155 | ol li { 156 | list-style-image: none; 157 | } 158 | 159 | .introquote { 160 | font-size: 1.1em; 161 | font-style: italic; 162 | width: 600px; 163 | margin: 0.25em 0; 164 | padding: 0.25em 40px; 165 | line-height: 1.45; 166 | position: relative; 167 | background-color: transparent; 168 | color: #222222; 169 | border: 0; 170 | } 171 | .introquote:before { 172 | display: block; 173 | content: "\201C"; 174 | font-size: 80px; 175 | position: absolute; 176 | left: -20px; 177 | top: -20px; 178 | color: #7a7a7a; 179 | } 180 | 181 | blockquote { 182 | background-color: #FDDB58; 183 | color: #321900; 184 | padding: 4px 12px; 185 | border: 2px solid #FDDB58; 186 | border-radius: 10px; 187 | } 188 | blockquote cite { 189 | color: #555; 190 | font-size: 14px; 191 | display: block; 192 | margin-top: 5px; 193 | } 194 | 195 | blockquote cite:before { 196 | content: "\2014 \2009"; 197 | } 198 | li blockquote { margin: 4px 0;} 199 | li blockquote p { margin: 0; padding: 0;} 200 | 201 | blockquote.neutralquote { 202 | margin: 0 0 0 0; 203 | } 204 | blockquote.neutralquote blockquote, blockquote.neutralquote p { 205 | margin-top: 0; 206 | margin-bottom: 0; 207 | } 208 | 209 | dt, dd { 210 | border-bottom: 1px solid #7C3100; 211 | color: inherit; 212 | line-height: 1.4em; 213 | padding-left: 4px; 214 | } 215 | dt { 216 | background-color: #FDDB58; 217 | margin-top: 4px; 218 | font-weight: bolder; 219 | } 220 | dd { 221 | border-left: 1px solid #7C3100; 222 | margin-top: 2px; 223 | } 224 | 225 | dl.dialogue { 226 | background-color: #FDDB58; 227 | border-radius: 0px 10px; 228 | } 229 | dl.dialogue dt, dl.dialogue dd { 230 | border-bottom: none; 231 | border-left: none; 232 | background-color: transparent; 233 | color: inherit; 234 | } 235 | dl.dialogue dt { 236 | font-weight: bolder; 237 | font-variant: small-caps; 238 | color: #7C3100; 239 | } 240 | 241 | table { 242 | border-collapse: collapse; 243 | margin-bottom: 12pt; 244 | } 245 | th, td { 246 | border: 1px solid gray; 247 | padding: 4px; 248 | } 249 | tbody tr th { 250 | text-align: left; 251 | } 252 | 253 | .solutions strong { 254 | color: green; 255 | background-color: transparent; 256 | } 257 | .solutions del { 258 | color: red; 259 | background-color: transparent; 260 | } 261 | .solutions ins { 262 | color: #09316D; 263 | background-color: transparent; 264 | text-decoration: none; 265 | font-weight: bold; 266 | } 267 | .solutions del:before { 268 | content: "*"; 269 | color: red; 270 | background-color: transparent; 271 | } 272 | 273 | /* see http://www.kapba.de/AbkhazianFonts.html http://www.eaglefonts.com/truetype-abkhaz---adyghe---kabardian---kazakh-fonts-195.htm */ 274 | *[lang=ab] { 275 | font-family: Apsni, 'CC Arial', 'Times Abkhaz', sans-serif; 276 | } 277 | *[lang=chr] { 278 | /* Digohweli Cherokee Unicode font @@ see http://www.cherokee.org/AboutTheNation/Language/CherokeeFont.aspx */ 279 | } 280 | *[lang=ja] { 281 | font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif; 282 | /*see http://stackoverflow.com/questions/14563064/japanese-standard-web-fonts*/ 283 | } 284 | /* languages using the Tibetan script: */ 285 | *[lang=adx], *[lang=khg], *[lang=bo], *[lang=dz], *[lang=lbj] { 286 | font-size: 1.4em; 287 | } 288 | 289 | /* Other Chinese fonts: "FangSong", "仿宋"; see http://www.kendraschaefer.com/2012/06/chinese-standard-web-fonts-the-ultimate-guide-to-css-font-family-declarations-for-web-design-in-simplified-chinese/ & http://webdesign.tutsplus.com/articles/the-complete-beginners-guide-to-chinese-fonts--cms-23444 */ 290 | *[lang=zh-CN], rb[lang=zh-CN], span[lang=zh-CN], .solutions[lang=zh-CN], .solutions span[lang=zh-CN], td[lang=zh-CN] { 291 | font-family: "KaiTi", "楷体", STKaiti, "华文楷体", STFangSong, "华文仿宋", Simsun, 'MS Song', Song, STSong; 292 | font-style: normal; 293 | } 294 | *[lang=zh-CN], rb[lang=zh-CN], span[lang=zh-CN], .solutions[lang=zh-CN], .solutions span[lang=zh-CN], nav li a[lang=zh-CN] { /*not: .solutions :lang(zh-CN)*/ 295 | font-size: 1.3em; 296 | } 297 | .solutions[lang=zh-CN] span[lang=en], .solutions[lang=zh-CN] span[lang=en-GB], td.pinyin[lang=zh-CN], td[lang=zh-CN] span.pinyin { 298 | font-family: 'Libre Baskerville', 'Trebuchet MS', Verdana, Helvetica, sans-serif; 299 | } 300 | .solutions[lang=zh-CN] span[lang=en], .solutions[lang=zh-CN] span[lang=en-GB] { 301 | font-size: 0.8em; 302 | } 303 | p.solutions[lang=zh-CN]{ 304 | text-indent: 2em; 305 | } 306 | td[lang=zh-CN] { 307 | font-size: 1.4em; 308 | } 309 | td.pinyin[lang=zh-CN] { 310 | font-size: 1em; 311 | } 312 | td[lang=zh-CN] span.pinyin { 313 | font-size: 0.7em; 314 | } 315 | 316 | .uppercase { text-transform: uppercase; } 317 | -------------------------------------------------------------------------------- /css/systemcolours.css: -------------------------------------------------------------------------------- 1 | @import url("righthand_floating_navigation_layout.css"); 2 | 3 | body { 4 | font-family: 'Libre Baskerville', 'Trebuchet MS', Verdana, Helvetica, sans-serif; 5 | background-color: Window; color: WindowText; 6 | } 7 | 8 | header { 9 | background-color: transparent; 10 | color: inherit; 11 | border: 1px solid ActiveBorder; 12 | } 13 | 14 | nav { 15 | background-color: ScrollBar; 16 | color: MenuText; 17 | } 18 | 19 | nav h2 { 20 | background-color: transparent; 21 | color: MenuText; 22 | } 23 | 24 | nav > ul { 25 | color: inherit; 26 | background-color: transparent; 27 | } 28 | 29 | nav > ul > li { 30 | color: inherit; 31 | background-color: transparent; 32 | } 33 | 34 | nav > ul > li > ul { 35 | color: inherit; 36 | background-color: transparent; 37 | } 38 | 39 | nav > ul > li.active a, nav > ul > li > ul > li.active a { 40 | border-left: 10px solid InactiveBorder; 41 | background-color: InactiveBorder; 42 | color: CaptionText; 43 | } 44 | 45 | nav li.active a { 46 | border-right: none; 47 | border-left: none; 48 | background-color: InactiveBorder; 49 | color: CaptionText; 50 | } 51 | 52 | nav li.active a:hover, nav li.active a:focus { 53 | border-right: none; 54 | border-top-color: transparent; 55 | border-bottom-color: transparent; 56 | background-color: InactiveBorder; 57 | color: CaptionText; 58 | } 59 | 60 | nav > ul > li.active > ul > li a:link, 61 | nav > ul > li.active > ul > li a:visited { 62 | border-top: none; 63 | border-right: 10px solid InactiveBorder; 64 | border-bottom: none; 65 | border-left: 10px solid InactiveBorder; 66 | } 67 | 68 | nav > ul > li.active > ul > li a:hover, 69 | nav > ul > li.active > ul > li a:focus, 70 | nav > ul > li.active > ul > li a:active { 71 | border-top: none; 72 | border-right: 10px solid ActiveCaption; 73 | border-bottom: none; 74 | border-left: 10px solid ActiveCaption; 75 | } 76 | 77 | nav a:link, 78 | nav a:visited, 79 | nav a:hover, nav a:focus, 80 | nav a:active { 81 | font-size: 1em; 82 | text-decoration: none; 83 | /*padding-left: 2px;*/ 84 | } 85 | 86 | nav a:link, 87 | nav a:visited { 88 | border-top: 1px solid Menu; 89 | border-right: 10px solid Menu; 90 | border-bottom: 1px solid Menu; 91 | border-left: 10px solid Menu; 92 | background-color: Menu; 93 | color: MenuText; 94 | } 95 | 96 | nav a:hover, nav a:focus, 97 | nav a:active { 98 | border-top: 1px solid Scrollbar; 99 | border-right: 10px solid ActiveCaption; 100 | border-bottom: 1px solid Scrollbar; 101 | border-left: 10px solid ActiveCaption; 102 | } 103 | 104 | a:link, a:visited { 105 | background-color: ButtonFace; 106 | color: ButtonText; 107 | } 108 | 109 | a:hover, a:focus, a:active { 110 | background-color: Highlight; 111 | color: ButtonText; 112 | text-decoration: none; 113 | } 114 | 115 | footer { 116 | border-color: ThreeDDarkShadow; 117 | border-style: solid; 118 | color: WindowText; 119 | background-color: ThreeDFace; 120 | } 121 | 122 | footer a:link, footer a:visited { 123 | background-color: Menu; 124 | color: MenuText; 125 | } 126 | 127 | footer a:hover, footer a:focus, footer a:active { 128 | background-color: Highlight; 129 | color: ButtonText; 130 | } 131 | 132 | 133 | main ul li { 134 | list-style-type: square; 135 | } 136 | 137 | -------------------------------------------------------------------------------- /english/dictionaries.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Dictionaries | Language Learning 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |

Dictionaries

18 |
19 | 20 | 105 | 106 |
107 |
108 |

109 | I stopped taking the Oxford Dictionary seriously when they decided that "literally" could literally mean "not literally". 110 | Rand al'Thor on Literature Stack Exchange, 111 | 15.09.2017; accessed on 03.07.2018) 112 |

113 |
114 | 115 | 116 |

For non-native speakers of English, a “learner's dictionary” is more useful than a dictionary aimed at native speakers. 117 | When you choose a dictionary (whether printed or digital), check that it provides usage notes (e.g. on difference between certain synonyms and near synonyms, e.g. "change", "alter" and "modify"), 118 | full sentence examples and examples of prepositions that can be used with the noun or verb you are looking up. 119 |

120 | 121 |

Monolingual Dictionaries (British English)

122 | 148 |

Also useful:

149 | 155 | 156 |

Monolingual Dictionaries (Other Variations of English)

157 | 179 | 180 | 188 | 189 |

Other Resources about Dictionaries

190 | 204 | 205 |

Other Links

206 | 215 | 216 | 235 |
236 | 237 | 252 | 253 | 254 | -------------------------------------------------------------------------------- /german/praepositionen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Präpositionen | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

Präpositionen

17 |
18 | 19 | 104 | 105 |
106 | 107 |

Akkusativ

108 |

Die folgenden Präpositionen verlangen immer den Akkusativ: 109 | à, bis, durch, für, gegen, gen (veraltet), ohne, per, pro, um, wider, … entlang. 110 |
Die wichtigsten sind die folgenden: 111 | bis, durch, für, gegen, ohne, um, wider, … entlang. 112 |

113 | 114 |

Dativ

115 |

Die folgenden Präpositionen verlangen immer den Dativ: 116 | 117 | aus, außer, bei, entgegen, entsprechend, fern, gegenüber, gemäß, gleich, mit, mitsamt, nach, nächst, nahe, nebst, samt, seit, von, zu, zufolge, zuliebe, zuwider. 118 |
Die wichtigsten sind die folgenden: 119 | aus, außer, bei, mit, nach, seit, von, zu, gegenüber, an … vorbei. 120 |

121 | 122 |

aus (Dativ)

123 |

Die Präposition aus wird für die folgenden Typen von Angaben benutzt:

124 |
    125 |
  1. Eine Bewegung von innen nach außen. Beispiele: 126 |
      127 |
    • Er nahm das Buch aus dem Regal.
    • 128 |
    • Sie kam erst um 19 Uhr aus der Bibliothek.
    • 129 | 130 |
    131 |
  2. 132 |
  3. Die örtliche oder zeitliche Herkunft. Beispiele: 133 |
      134 |
    • Ich komme aus Belgien.
    • 135 |
    • Dieses Manuskript stammt aus dem 15. Jahrhundert.
    • 136 |
    • Er hat das Theaterstück aus dem Englischen ins Deutsche übersetzt.
    • 137 |
    138 |
  4. 139 |
  5. Das Material eines Gegenstands (ohne Artikel). Beispiele: 140 |
      141 |
    • aus Gold
    • 142 |
    • aus Aluminium
    • 143 |
    • aus Baumwolle
    • 144 |
    145 |
  6. 146 |
  7. Verhaltensweisen, die eine Handlung begründen (ohne Artikel). Beispiele: 147 |
      148 |
    • aus Liebe
    • 149 |
    • aus Dankbarkeit
    • 150 | 151 |
    152 |
  8. 153 |
  9. Bestimme feste Wendungen. 154 |
      155 |
    • aus folgendem Grund
    • 156 |
    • aus gegebenem Anlass
    • 157 | 158 |
    159 |
  10. 160 |
161 | 162 |

von (Dativ)

163 |

Die Präposition von wird für die folgenden Typen von Angaben benutzt:

164 |
    165 |
  1. Ein Ort: 166 |
      167 |
    • Warum eigentlich kommt der Wind bei uns meist von Westen? 168 | (N-TV, 31.07.2012) 169 |
    • 170 |
    • Vom Hauptbahnhof geht es durch die Königstraße bis zum Schlosspatz, dann links abbiegen und ungefähr 120 Meter gehen bis zum Alten Schloss.
    • 171 |
    • Wasser tropfte vom Hahn in das Waschbecken.
    • 172 |
    • Wasser tropft von der Decke: Wie vorgehen?
    • 173 |
    • Ich bin gerade von einem einwöchigen Urlaub in Italien zurückgekommen.
    • 174 |
    • Aber: 175 |
        176 |
      • Ich bin gerade aus Italien zurückgekommen.
      • 177 |
      • Warum weht der Wind überwiegend aus Westen? 178 | (SWR: 1000 Antworten) 179 |
      • 180 |
      181 |
    • 182 |
    183 |
  2. 184 |
  3. Ein Datum: 185 |
      186 |
    • Vom 28. bis zum 30. Dezember 2010 war er kommisiarisch Präsident von Moldawien. (Wikipedia)
    • 187 |
    • Danke für Ihren Brief vom 27. März 2012.
    • 188 |
    189 |
  4. 190 |
  5. Ortsangaben mit von … ab/an/aus: 191 |
      192 | 193 |
    • Von hier aus sind es nur wenige Gehminuten zum Hauptbahnhof.
    • 194 |
    • Sie wollten wissen, wie die Türkei von Europa aus gesehen wird.
    • 195 |
    196 |
  6. 197 |
  7. von … aus zum Ausdruck einer Zustimmung: 198 |
      199 |
    • Von mir aus (mit meiner Einwilligung) kannst du tun, was du willst.
    • 200 |
    • Von mir aus kann Merkel Kanzlerin bleiben.
    • 201 |
    • Von mir aus lieber heute als morgen.
    • 202 |
    • Wir haben von uns aus nichts dagegen.
    • 203 |
    204 |
  8. 205 |
  9. In Zeitangaben mit von … an: 206 |
      207 |
    • Von 16 Uhr an konnte die Strecke wieder befahren werden.
    • 208 |
    • Ich habe es von Anfang an gewusst.
    • 209 |
    210 |
  10. 211 |
  11. Der “Verursacher” in Passivsätzen: 212 |
      213 |
    • Zwei Katzen wurden von der Feuerwehr gerettet.
    • 214 |
    • In der Regel werden die Schäden aber von der Versicherung bezahlt.
    • 215 |
    • (eine vom Autor signiert Erstausgabe)
    • 216 |
    217 |
  12. 218 |
  13. Anstelle eines Genitivattributs (ohne Artikel): 219 |
      220 |
    • Die Briefe von Goethe an Charlotte von Stein
    • 221 |
    • Im Rauch von Zigarretten sind zahlreiche Gifte enthalten.
    • 222 |
    • Die Herstellung von Papier belastet die Umwelt stark.
    • 223 |
    224 |
  14. 225 | 226 |
  15. In bestimmten festen Wendungen: 227 |
      228 |
    • von heute auf morgen
    • 229 |
    • in der Nacht von Donnerstag auf Freitag
    • 230 |
    • von Tag zu Tag
    • 231 |
    • von Ort zu Ort
    • 232 |
    233 |
  16. 234 |
235 |

Siehe auch 236 | Aus vs. Von — What is the difference?: 237 | eine Frage auf German Language Stack Exchange. 238 |

239 | 240 |

Akkusativ oder Dativ

241 |

Manche Präposotionen verlangen manchmal den Dativ, manchmal den Akkusativ verlangen, 242 | Die folgenden Präpositionen gehören zu dieser Gruppe der „Wechselpräpositionen (Dativ/Akkusativ)“: 243 | an, auf, hinter, in, neben, über, unter, vor, zwischen. 244 |
Wenn man fragen kann, wo die beschriebene Handlung stattfindet, dann benutzt man den Dativ; 245 | wenn man fragen kann, wohin sich eine Bewegung richtet, benutzt man den Akkusativ. 246 | Wenn die Handlung eine übertragene Bedeutung hat, ist nicht immer klar, welchen Kasus man benutzen sollte. 247 |

248 | 249 |

Genitiv

250 |

Die wichtigsten Präpositionen, die immer den Genitiv verlangen sind die folgenden: 251 | diesseits, jenseits, statt, trotz, während, wegen. 252 | Die ganze Reihe der Präpositionen mit dem Genitiv ist die folgende: 253 | abseits, anfangs, angesichts, anhand, anläßlich, (anstatt), anstelle, auf seiten, aufgrund, außerhalb, 254 | bar [veraltet], beiderseits, diesseits, halber [nachgestellt], infolge, inmitten, innerhalb, 255 | jenseits, kraft, (laut), links, (längs), minus, (mittels), namens, nördlich, (ob), oberhalb, östlich, 256 | plus, rechts, südlich, seitens, (statt), um … willen, unbeschadet, unfern, ungeachtet, unterhalb, unweit, 257 | von seiten, vorbehaltlich, während, wegen, westlich, zeit, zu seiten. 258 |

259 | 260 |

Genitiv oder Dativ

261 |

Folgende Präpositionen werden auch adverbiell mit von + Dativ verwendet:: 262 | abseits, angesichts, anhand, anstelle, aufgrund, außerhalb, beiderseits, diesseits, infolge, inmitten, 263 | innerhalb, jenseits, links, nördlich, oberhalb, östlich, rechts, südlich, unfern, unterhalb, unweit, westlich. 264 |

265 |

Die folgenden Präpositionen werden entweder mit dem Genitiv oder mit dem Dativ verwendet: längs, laut, ob.

266 |

Die folgenden Präpositionen werden in gepflegter Sprache mit dem Genitiv verwendet, in der gesprochenen Sprache aber oft mit dem Dativ: 267 | statt, trotz, während, wegen. 268 |

269 | 270 |
271 | 272 | 287 | 288 | 289 | -------------------------------------------------------------------------------- /img/159621776_fdfdda27c7_medium.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/159621776_fdfdda27c7_medium.jpg -------------------------------------------------------------------------------- /img/HTML5-Logo-Badge_W3C_cc-by.svg: -------------------------------------------------------------------------------- 1 | 2 | HTML5 Logo Badge 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /img/LL-SE_proposedAd_CS_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/LL-SE_proposedAd_CS_04.png -------------------------------------------------------------------------------- /img/brown_listsquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/brown_listsquare.png -------------------------------------------------------------------------------- /img/cc-licence-by-nc-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/cc-licence-by-nc-sa-88x31.png -------------------------------------------------------------------------------- /img/cc-licence-by-sa-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/cc-licence-by-sa-88x31.png -------------------------------------------------------------------------------- /img/cc-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/cc-logo.jpg -------------------------------------------------------------------------------- /img/cc-unported.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/cc-unported.png -------------------------------------------------------------------------------- /img/orange_listsquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/orange_listsquare.png -------------------------------------------------------------------------------- /img/orangebrown_listsquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/orangebrown_listsquare.png -------------------------------------------------------------------------------- /img/orangebrown_listsquare_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/orangebrown_listsquare_small.png -------------------------------------------------------------------------------- /img/stuttgart-books-refugees_2016-09-d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cstrobbe/languagelearning/fc0c54f5706bd56c52e602299063bf365029a70f/img/stuttgart-books-refugees_2016-09-d.jpg -------------------------------------------------------------------------------- /js/DOMhelp.js: -------------------------------------------------------------------------------- 1 | /* 2 | DOMhelp 1.0 3 | written by Chris Heilmann 4 | http://beginningjavascript.com/ 5 | To be featured in "Beginning JavaScript with DOM Scripting and Ajax" 6 | */ 7 | /** 8 | * @namespace DOMhelp libary, with function that facilitate DOM manipulation and dealing with events. 9 | * @author Christian Heilmann 10 | * @see Beginning JavaScript with DOM Scripting and Ajax. 11 | * @fileOverview Licensed under the Apache License, Version 2.0 (the "License"); 12 | you may not use this file except in compliance with the License. 13 | You may obtain a copy of the License at 14 | 15 | http://www.apache.org/licenses/LICENSE-2.0 16 | 17 | Unless required by applicable law or agreed to in writing, software 18 | distributed under the License is distributed on an "AS IS" BASIS, 19 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | See the License for the specific language governing permissions and 21 | limitations under the License. 22 | */ 23 | var DOMhelp = { 24 | debugWindowId: 'DOMhelpdebug', 25 | init: function() { 26 | "use strict"; 27 | if (!document.getElementById || !document.createTextNode) {return;} 28 | }, 29 | 30 | // See Beginning JS, p. 119. 31 | lastSibling: function(node) { 32 | "use strict"; 33 | var tempObj = node.parentNode.lastChild; 34 | //while(tempObj.nodeType !== Node.ELEMENT_NODE && tempObj.previousSibling !== null) { 35 | while(tempObj.nodeType !== 1 && tempObj.previousSibling !== null) { 36 | tempObj = tempObj.previousSibling; 37 | } 38 | //return (tempObj.nodeType === Node.ELEMENT_NODE) ? tempObj : false; 39 | return (tempObj.nodeType === 1) ? tempObj : false; 40 | }, 41 | 42 | // See Beginning JS, p. 119. 43 | firstSibling: function(node) { 44 | "use strict"; 45 | var tempObj = node.parentNode.firstChild; 46 | //while(tempObj.nodeType !== Node.ELEMENT_NODE && tempObj.nextSibling !== null) { 47 | while(tempObj.nodeType !== 1 && tempObj.nextSibling !== null) { 48 | tempObj = tempObj.nextSibling; 49 | } 50 | //return (tempObj.nodeType === Node.ELEMENT_NODE) ? tempObj : false; 51 | return (tempObj.nodeType === 1) ? tempObj : false; 52 | }, 53 | 54 | // See Beginning JS, p. 119. 55 | getText: function(node) { 56 | "use strict"; 57 | if (!node.hasChildNodes()) {return false;} 58 | var reg = /^\s+$/; 59 | var tempObj = node.firstChild; 60 | //while(tempObj.nodeType !== Node.TEXT_NODE && tempObj.nextSibling !== null || reg.test(tempObj.nodeValue)) { 61 | while(tempObj.nodeType !== 3 && tempObj.nextSibling !== null || reg.test(tempObj.nodeValue)) { 62 | tempObj = tempObj.nextSibling; 63 | } 64 | //return tempObj.nodeType === Node.TEXT_NODE ? tempObj.nodeValue : false; 65 | return tempObj.nodeType === 3 ? tempObj.nodeValue : false; 66 | }, 67 | 68 | // See Beginning JS, p. 120. 69 | setText: function(node,txt) { 70 | "use strict"; 71 | if (!node.hasChildNodes()) {return false;} 72 | var reg = /^\s+$/; 73 | var tempObj = node.firstChild; 74 | //while(tempObj.nodeType !== Node.TEXT_NODE && tempObj.nextSibling !== null || reg.test(tempObj.nodeValue)) { 75 | while(tempObj.nodeType !== 3 && tempObj.nextSibling !== null || reg.test(tempObj.nodeValue)) { 76 | tempObj = tempObj.nextSibling; 77 | } 78 | //if (tempObj.nodeType === Node.TEXT_NODE) {tempObj.nodeValue=txt} else {return false;} 79 | if (tempObj.nodeType === 3) {tempObj.nodeValue=txt} else {return false;} 80 | }, 81 | 82 | // See Beginning JS, p. 120. 83 | createLink: function(to,txt) { 84 | "use strict"; 85 | var tempObj = document.createElement('a'); 86 | tempObj.appendChild(document.createTextNode(txt)); 87 | tempObj.setAttribute('href',to); 88 | return tempObj; 89 | }, 90 | 91 | // See Beginning JS, p. 120. 92 | createTextElm: function(elm,txt) { 93 | "use strict"; 94 | var tempObj = document.createElement(elm); 95 | tempObj.appendChild(document.createTextNode(txt)); 96 | return tempObj; 97 | }, 98 | 99 | // See Beginning JS, p. 121. 100 | closestSibling: function(node,direction) { 101 | "use strict"; 102 | var tempObj; 103 | if (direction === -1 && node.previousSibling !== null) { 104 | tempObj = node.previousSibling; 105 | //while(tempObj.nodeType !== Node.ELEMENT_NODE && tempObj.previousSibling !== null) { 106 | while(tempObj.nodeType !== 1 && tempObj.previousSibling !== null) { 107 | tempObj=tempObj.previousSibling; 108 | } 109 | //} else if (direction === Node.ELEMENT_NODE && node.nextSibling !== null) { 110 | } else if (direction === 1 && node.nextSibling !== null) { 111 | tempObj = node.nextSibling; 112 | //while(tempObj.nodeType !== Node.ELEMENT_NODE && tempObj.nextSibling !== null) { 113 | while(tempObj.nodeType !== 1 && tempObj.nextSibling !== null) { 114 | tempObj = tempObj.nextSibling; 115 | } 116 | } 117 | //return tempObj.nodeType === Node.ELEMENT_NODE ? tempObj : false; 118 | return tempObj.nodeType === 1 ? tempObj : false; 119 | }, 120 | 121 | // See Beginning JS, p. 121. 122 | initDebug: function() { 123 | "use strict"; 124 | if (DOMhelp.debug) {DOMhelp.stopDebug();} 125 | DOMhelp.debug = document.createElement('div'); 126 | DOMhelp.debug.setAttribute('id',DOMhelp.debugWindowId); 127 | document.body.insertBefore(DOMhelp.debug,document.body.firstChild); 128 | }, 129 | 130 | // See Beginning JS, p. 121. 131 | setDebug: function(bug) { 132 | "use strict"; 133 | if (!DOMhelp.debug) {DOMhelp.initDebug();} 134 | DOMhelp.debug.innerHTML += bug+'\n'; 135 | }, 136 | 137 | // See Beginning JS, p. 122. 138 | stopDebug: function() { 139 | "use strict"; 140 | if (DOMhelp.debug) { 141 | DOMhelp.debug.parentNode.removeChild(DOMhelp.debug); 142 | DOMhelp.debug = null; 143 | } 144 | }, 145 | 146 | getKey: function(e) { 147 | "use strict"; 148 | if (window.event) { 149 | var key = window.event.keyCode; 150 | } else if (e) { 151 | var key = e.keyCode; 152 | } 153 | return key; 154 | }, 155 | 156 | // helper methods 157 | // NOTE: Also check for nodeType to address Safari bug; see http://www.quirksmode.org/js/events_properties.html 158 | // See Beginning JS, p. 167-168. 159 | getTarget: function(e) { 160 | "use strict"; 161 | var target = window.event ? window.event.srcElement : e ? e.target : null; 162 | if (!target) {return false;} 163 | //while(target.nodeType !== Node.ELEMENT_NODE && target.nodeName.toLowerCase() !== 'body') { 164 | while(target.nodeType !== 1 && target.nodeName.toLowerCase() !== 'body') { 165 | target = target.parentNode; 166 | } 167 | return target; 168 | }, 169 | 170 | // See Beginning JS, p. 168. 171 | stopBubble: function(e) { 172 | "use strict"; 173 | if (window.event && window.event.cancelBubble) { // MSIE 174 | window.event.cancelBubble = true; 175 | } 176 | if (e && e.stopPropagation) { // W3C DOM Level 2 event support 177 | e.stopPropagation(); 178 | } 179 | }, 180 | 181 | // See Beginning JS, p. 168. 182 | stopDefault: function(e) { 183 | "use strict"; 184 | if (window.event && window.event.returnValue) { // MSIE 185 | window.event.returnValue = false; 186 | } 187 | if (e && e.preventDefault) { // W3C DOM Level 2 event support 188 | e.preventDefault(); 189 | } 190 | }, 191 | 192 | // See Beginning JS, p. 169. 193 | // See also The Art and Science of JavaScript, p. 63 & 71. 194 | cancelClick: function(e) { 195 | "use strict"; 196 | if (window.event) { 197 | window.event.cancelBubble = true; 198 | window.event.returnValue = false; 199 | } 200 | if (e && e.stopPropagation && e.preventDefault) { 201 | e.stopPropagation(); 202 | e.preventDefault(); 203 | } 204 | }, 205 | 206 | // By Scott Andrew. See Beginning JS, p. 166. 207 | // See also The Art and Science of JavaScript p. 61 & 64 -> http://www.scottandrew.com/weblog/articles/cbs-events 208 | addEvent: function(elm, evType, fn, useCapture) { 209 | "use strict"; 210 | if (elm.addEventListener) { // W3C DOM 211 | elm.addEventListener(evType, fn, useCapture); 212 | return true; 213 | } else if (elm.attachEvent) { // MSIE 8 or earlier 214 | var r = elm.attachEvent('on' + evType, fn); 215 | return r; 216 | } else { // MSIE on Mac 217 | elm['on' + evType] = fn; 218 | } 219 | }, 220 | 221 | // See Beginning JS, p. 128. 222 | cssjs: function(a,o,c1,c2) { 223 | "use strict"; 224 | switch (a) { 225 | case 'swap': 226 | o.className = !DOMhelp.cssjs('check',o,c1) ? o.className.replace(c2,c1) : o.className.replace(c1,c2); // Does the last part assume that the developer got the order of the arguments wrong? 227 | break; 228 | case 'add': 229 | if (!DOMhelp.cssjs('check', o, c1)) {o.className += o.className ? (' ' + c1) : c1;} 230 | break; 231 | case 'remove': 232 | var rep = o.className.match(' ' + c1) ? (' ' + c1) : c1; 233 | o.className = o.className.replace(rep, ''); 234 | break; 235 | case 'check': 236 | var found = false; 237 | // ?? add: if (!o.getAttribute('class') { return found; } 238 | var temparray = o.className.split(' '); 239 | for (var i=0; iThe best way to load external JavaScript (NCZOnline, 28 July 2009). 9 | * @see Nicholas C. Zakas's article Loading JavaScript without blocking (NCZOnline, 23 June 2009). 10 | * @see Jack Slingerland's article Load Javascript Dynamically With Lazy Load (Re-Cycled Air, 11 September 2010). 11 | */ 12 | function loadScript(url, callback) { 13 | "use strict"; 14 | var script = document.createElement("script"); 15 | script.type = "text/javascript"; 16 | 17 | if (script.readyState) { //IE 18 | script.onreadystatechange = function() { 19 | if (script.readyState === "loaded" || 20 | script.readyState === "complete") { 21 | script.onreadystatechange = null; 22 | callback(); 23 | } // else { console.log("IE: DoMhelp.js not ready");} 24 | }; 25 | } else { //Others 26 | script.onload = function() { 27 | callback(); 28 | }; 29 | } 30 | script.src = url; 31 | document.getElementsByTagName("head")[0].appendChild(script); 32 | } 33 | 34 | 35 | /** 36 | * @namespace csrc @@add description. 37 | * @author Christophe Strobbe 38 | * @fileOverview Licensed under the Apache License, Version 2.0 (the "License"); 39 | you may not use this file except in compliance with the License. 40 | You may obtain a copy of the License at 41 | 42 | http://www.apache.org/licenses/LICENSE-2.0 43 | 44 | Unless required by applicable law or agreed to in writing, software 45 | distributed under the License is distributed on an "AS IS" BASIS, 46 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 47 | See the License for the specific language governing permissions and 48 | limitations under the License. 49 | */ 50 | 51 | var DEBUG = true; 52 | 53 | var csrc = { 54 | init: function() { 55 | "use strict"; 56 | if (!document.getElementById || !document.createTextNode) {return;} 57 | 58 | 59 | var DOMhelpURL = "http://cstrobbe.github.io/languagelearning/js/DOMhelp.js"; // http://localhost:8088/github/languagelearning/js/DOMhelp.js 60 | var hostPageURL = document.URL; 61 | //console.log("hostPageURL (document.URL) = " + hostPageURL); 62 | if (hostPageURL.indexOf("localhost:8088") > 0) { // does not work with "http://localhost:8088/" 63 | DOMhelpURL = DOMhelpURL.replace("http://cstrobbe.github.io/languagelearning", "http://localhost:8088/github/languagelearning"); 64 | //console.log("DOMhelpURL = " + DOMhelpURL); 65 | } 66 | 67 | 68 | loadScript(DOMhelpURL, function() { 69 | if (DEBUG) { console.log("DOMhelp.js loaded."); } 70 | }); 71 | //console.log("window.location = " + window.location); 72 | //console.log("document.location = " + document.location); 73 | }, 74 | 75 | // By Scott Andrew. See Beginning JS, p. 166. 76 | // See also The Art and Science of JavaScript p. 61 & 64 -> http://www.scottandrew.com/weblog/articles/cbs-events 77 | addEvent: function(elm, evType, fn, useCapture) { 78 | "use strict"; 79 | if (elm.addEventListener) { // W3C DOM 80 | elm.addEventListener(evType, fn, useCapture); 81 | return true; 82 | } else if (elm.attachEvent) { // MSIE 8 or earlier 83 | var r = elm.attachEvent('on' + evType, fn); 84 | return r; 85 | } else { // MSIE on Mac 86 | elm['on' + evType] = fn; 87 | } 88 | }, 89 | 90 | // @@check: is NodeList object an array? Check at https://www.w3.org/TR/selectors-api/#nodelist & https://developer.mozilla.org/en-US/docs/Web/API/NodeList 91 | /** 92 | * Get all heading elements (h1 - h6) that are descendants of the given context (a DOM node). 93 | * @param {Element} context DOM node in which the headings should be found. 94 | * @returns {Array} A NodeList object containing all the headings in the given context. Note: This list is not live. 95 | * @author Christophe Strobbe 96 | */ 97 | getHeadingsInContext: function(nodes) { 98 | "use strict"; 99 | var context = null, 100 | headinglist = null; 101 | 102 | // if (DEBUG) console.log("nodes length = " + nodes.length); 103 | context = nodes[0]; 104 | if (DEBUG) console.log("context name = " + context.tagName); 105 | 106 | if (context) { 107 | // element.querySelectorAll(): https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll 108 | headinglist = context.querySelectorAll('h1', 'h2', 'h3', 'h4', 'h5', 'h6'); 109 | } 110 | if (DEBUG) console.log("headinglist.length = " + headinglist.length); 111 | return headinglist; // NodeList object; 112 | // see: http://www.w3schools.com/jsref/met_document_queryselectorall.asp 113 | // see: https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll 114 | // see: https://www.w3.org/TR/selectors-api/#queryselectorall 115 | } 116 | }; 117 | 118 | csrc.addEvent(window, 'load', csrc.init, false); 119 | 120 | csrc.getHeadingsInContext(document.getElementsByTagName("main")); 121 | 122 | -------------------------------------------------------------------------------- /misc/languagetags.md: -------------------------------------------------------------------------------- 1 | # ISO Language Tags 2 | 3 | ISO language tags (ISO 639-1, else ISO 639-3) for languages, with English name and endonym. 4 | the languages are ordered by number of speakers according to the list in the 5 | [Wikipedia article 'List of languages by number of native speakers'](https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers). 6 | 7 | ## Notes 8 | 9 | Endonyms are based on entries in the English version of Wikipedia. 10 | Where capitalisation is relevant, the endonym is capitalised. 11 | Where several endonyms are available or where the endonym is also used in Wikipedia's 12 | [interlanguage links](https://en.wikipedia.org/wiki/Help:Interlanguage_links), 13 | the endonym used in the interlanguage links is given precedence. 14 | 15 | Some languages miss translations/endonyms because the script used by the language could not be copied from Wikipedia (typically due to rendering issues of the script in the browser): 16 | 17 | * `jv` (Javanese: writing system cannot be rendered in browser), 18 | * `my` (Burmese: writing system cannot be rendered in browser), 19 | * `dhd``(Dhundari: writing system not mentioned on Wikipedia), 20 | * `kok` (Konkani: कोंकणी is a partial guess). 21 | 22 | For languages that have more than one ISO 639-3 tag, only one tag is given. For example: 23 | 24 | * [Hmong](https://en.wikipedia.org/wiki/Hmong_language): `hmv` (not listed: `mww`, `hnj`, `hmz`, etc.). 25 | 26 | To do: 27 | * Add remaining langauges with ISO 639-1 code from [List of ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). 28 | * Then add languages with an ISO 639-3 code but no ISO 639-1 code from [List of ISO 639-3 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes). 29 | 30 | ## Contributing 31 | 32 | By making a pull request, you agree that your contribution becomes available under the 33 | Apache License 2.0. 34 | 35 | ## Licence 36 | The JSON file is licensed under 37 | [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). 38 | -------------------------------------------------------------------------------- /misc/languagetags_licence.md: -------------------------------------------------------------------------------- 1 | # ISO Language Tags 2 | 3 | Licence: Apache License 2.0. 4 | -------------------------------------------------------------------------------- /misc/teaching-to-refugees.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Teaching Languages to Refugees and Migrants | Language Learning 4 | 5 |

Teaching Languages to Refugees

6 |

Warning:: this page is now being maintained at a different location. Please update your bookmarks.

7 | 8 | -------------------------------------------------------------------------------- /slovak/einstieg-slowakisch-2011.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Einstieg Slowakisch (2011) | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

Einstieg Slowakisch (2011)

17 |
18 | 19 | 104 | 105 |
106 |

L'Ubica & Christophe Henßen: 107 | Einstieg Slowakisch. Herausgegeben von Hedwig Nosbers & Matthias Öhler. 108 | Ismaning: Hueber, 2011. 109 | ISBN 978-3-19-005221-9. 110 |

111 |

112 | Einstieg Slowakisch ist ein Selbstlernkurs, 113 | der ein Buch von 172 Seiten und 2 CDs umfasst. 114 | Das Buch enthält 20 Lektionen, die Erfahrungen des deutschen Expats 115 | Georg Müller verfolgen, der anfängt, bei einer Slowakischen Tochterfirma in 116 | Košice zu arbeiten. 117 |
Jede Lektion besteht aus einer deutschsprachigen Einführung, zwei Dialogen 118 | und einen deutschsprachigen Text über die Slowakei. 119 | Jeder Dialog hat eine Vokabelliste, grammatische Erklärungen und Übungen. 120 | Nach jeder Gruppe von vier Lektionen gibt es einen Test, der das Gelernte überprüft. 121 | Am Ende des Buchs findet man einen Lösungsschlüssel für die Übungen und Tests, 122 | eine kurze Grammatikübersicht und eine Liste mit den Wortschatz aus den 20 Lektionen. 123 |
Der Verlag behauptet, dass man nach dem Studium des Kurses 124 | Niveau A1 des Gemeinsamen Europäischen Referenzrahmen für Sprachen (GER) 125 | erreichen sollte. 126 |

127 | 128 |
129 | 130 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /stuttgart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Learning Languages in Stuttgart | Language Learning 5 | 6 |

Learning Languages in Stuttgart

7 |

Warning:: this page is now being maintained at a different location. Please update your bookmarks.

8 | 9 | -------------------------------------------------------------------------------- /techniques/onlinelearning.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Online Learning Tips | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

Online Learning Tips

15 |
16 | 17 | 97 | 98 |
99 |

The tips and techniques on this page are not exclusively related to language learning; 100 | they are about learning on online courses such as MOOCs. 101 |

102 |

Speed Reading

103 |

Some online courses require a lot of reading. 104 | Speed reading should save time without decreasing comprehension. 105 | Speed reading can also be used as a 106 | priming technique 107 | to increase retention when materials are reread at a slower pace. 108 |

109 | 110 |

Speed Listening

111 |

Speed listening is the auditory counterpart of speed reading. 112 | The techniques consists in playing video or audio material at a higher speed. 113 | Many online video players (not only on YouTube but also those built into MOOC platforms) 114 | allow the learner to change the speed, usually up to twice the default speed. 115 | The following quote illustrates how speed listening can help you in online learning: 116 |

117 |
118 |

Bjorn, one of the learners we interviewed, reported watching all lecture videos twice. He said: “I read 119 | an article about how priming really helps the mind cement content.” And then he applied that insight 120 | to his studies: “Instead of watching the videos and taking notes and pausing constantly,” he “watched 121 | the video in fast speed first, just really concentrating on the content, and then afterwards, watched it 122 | through while taking notes.” This strategy was aimed at improving the processing of new information 123 | and demonstrates the sophistication with which some learners approach studying. 124 |

125 |

Source: Veletsianos, George: 126 | "The Invisible Learners Taking MOOCs", Inside Higher Ed, 27.05.2015. 127 |

128 |
129 |

See also: 130 | Speed Learning — How I consume and comprehend media at 2x, 131 | Wes Bos, 09.03.2015 (accessed on 06.04.2021). 132 | 133 |

134 | 135 |

Study Habits from the Udacity Data Team

136 |

Nick Gustafson from Udacity's Data Team 137 | shares some tips based on the study habits of successful students on Udacity; 138 | see the YouTube video 139 | Study Habits from the Udacity Data Team: 140 |

141 | 156 | 157 |

Study Tips for the Online Student (UNT Dallas)

158 |

The University of North Texas at Dallas (UNT Dallas) has created a five-minute YouTube video on 159 | Study Tips for the Online Student. 160 | The video starts from the following observations: 161 |

162 |
    163 |
  1. Students are most likely to study between 10 a.m. and noon.
  2. 164 |
  3. 64% of today's students study less than 15 hours per week.
  4. 165 |
  5. 33% of students say that they struggle staying motivated to study.
  6. 166 |
167 |

The video then gives the following study tips.

168 | 183 | 184 |

The 9 Best Scientific Study Tips (AsapScience)

185 |

From the YouTube video The 9 BEST Scientific Study Tips. 186 | These tips apply to learning generally, not just online learning. 187 |

188 |
    189 |
  1. Study sessions are most effective in short small chunks (as opposed to long sessions). 190 | Schedule many sessions of 20 to 30 minutes. 191 |
  2. 192 |
  3. Cramming and pulling all-nighters is linked to low grades. 193 | They may negatively effect reasoning and memory for up to four days. 194 | Instead, you should set specific regular study times during the day. 195 | This will prime your brain for studying. 196 |
  4. 197 |
  5. Passively rereading and highlighting phrases or sentences in a texbook is not effective; flash cards are much more effective.
  6. 198 |
  7. Define a specific goal for each study session.
  8. 199 |
  9. If you can't explain a subject simply, you don't understand it well enough. 200 | When you study something with the expectation to teach it, your brain will organise the information in a more logical and coherent structure. 201 |
  10. 202 |
  11. Practice! Making mistakes helps you identify gaps in your knowledge.
  12. 203 |
  13. Study in a dedicated spot; this primes your brain for studying.
  14. 204 |
  15. Studying with rhythmic background noise (or music) can be detrimental to focus.
  16. 205 |
  17. Put away your phone.
  18. 206 |
207 | 208 |

Other Tips

209 | 261 | 262 | 263 |

Books on Learning

264 |

These books are about learning in general, not necessarily about online learning.

265 | 275 | 276 |
277 | 278 | 293 | 294 | 295 | -------------------------------------------------------------------------------- /techniques/shadowing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Shadowing (Language Learning Technique) | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

Shadowing

15 |
16 | 17 | 97 | 98 |
99 | 100 |

What Is Shadowing?

101 |

Shadowing is a technique that is best known in the polyglot community through its description by Alexander Argüelles. 102 | (Argüelles did not invent shadowing; see for example Elisabetta Sabatini: 103 | Listening comprehension, shadowing and simultaneous interpretation of two ‘non-standard’ English speeches, 104 | Interpreting, 5.1 (2000): 25–48.) 105 | 108 | 109 | The first links below are to Argüelles' own explanations, 110 | but others have also picked it up. 111 |

112 | 149 | 150 |

Resources by Other Users of the Technique

151 |

Below are links to videos and articles by people who have tried the shadowing technique.

152 | 153 | 233 | 234 |

Other Links

235 | 240 |
241 | 242 | 257 | 258 | 259 | -------------------------------------------------------------------------------- /tmp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Test Page | Language Learning 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 |
19 |

Test Page

20 |
21 | 22 | 48 | 49 |
50 |

System Colours in CSS 2

51 | 79 | 80 |

Colour Tests for the Default Style Sheet

81 |
82 |
    83 |
  • 84 |
      85 |
    • #124085
    • 86 |
    • #052452
    • 87 |
    • #09316D
    • 88 |
    • #27579D
    • 89 |
    • #446CA7
    • 90 |
    91 |
  • 92 |
  • 93 |
      94 |
    • #CAA30A
    • 95 |
    • #7C6300
    • 96 |
    • #A58400
    • 97 |
    • #EEC62A
    • 98 |
    • #FDDB58
    • 99 |
    100 |
  • 101 |
  • 102 |
      103 |
    • #CA560A
    • 104 |
    • #7C3100
    • 105 |
    • #A54100
    • 106 |
    • #EE772A
    • 107 |
    • #FD9958
    • 108 |
    109 |
  • 110 |
111 |
112 |
113 | 114 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /tmpnav.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Site Navigation | Language Learning 6 | 7 | 8 | 9 | 22 | 23 | 24 | 25 | 26 | 27 |

Site Navigation

28 | 108 | 109 | 110 | 111 | 112 | --------------------------------------------------------------------------------