1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <meta http-equiv="Cache-Control" content="no-cache" /> 6 <meta http-equiv="content-language" content="en" /> 7 8 <meta name="apple-mobile-web-app-capable" content="yes" /> 9 <meta name="HandheldFriendly" content="true" /> 10 <meta 11 name="viewport" 12 content="width=device-width,initial-scale=1.0,user-scalable=0" 13 /> 14 <meta name="apple-mobile-web-app-status-bar-style" content="black" /> 15 16 <meta 17 property="og:image" 18 content="https://readlang.com/content/readlangLogo.png" 19 /> 20 21 <meta name="author" content="Steve Ridout" /> 22 23
23<script> 24 "use strict"; 25 window.READLANG = window.READLANG || {}; 26 window.READLANG.splitTests = {}; 27 window.READLANG.userID = "6ab4f654dd41f401e0190719"; 28 29 // Record exposure before any stylesheet or external script can delay it. 30 // Both arms must count early exits, including visitors whose artwork fails 31 // to load. keepalive preserves the request during immediate navigation. 32 window.READLANG.treatRabbits = ""; 33 if (window.READLANG.treatRabbits) { 34 fetch("/api/experiment/treat", { 35 method: "POST", 36 keepalive: true, 37 headers: { "Content-Type": "application/json" }, 38 body: JSON.stringify({ 39 experiment: "landingPageRabbits1", 40 condition: window.READLANG.treatRabbits, 41 }), 42 // An unrecorded exposure just leaves this visitor out of the experiment. 43 }).catch(function () {}); 44 } 45 </script>
45 46 47 <link 48 rel="stylesheet" 49 href="/css/landingPages/landingPages.css?bust=967502f21f6f5fb5b057400e778280191b6d728b" 50 type="text/css" 51 /> 52 <link 53 href="https://fonts.googleapis.com/css?family=Jost:200,300,300italic,400,400italic,500,600,700" 54 rel="stylesheet" 55 type="text/css" 56 /> 57 <link rel="stylesheet" href="/external/font-awesome/css/font-awesome.min.css" /> 58 59 60 <link rel="shortcut icon" href="/favicon-16.png" /> 61 <link rel="apple-touch-icon-precomposed" href="/favicon-152.png" /> 62 <link rel="apple-touch-icon" sizes="196x196" href="/favicon-196.png" /> 63 <link rel="icon" sizes="32x32" href="/favicon-32.png" /> 64 <link rel="icon" sizes="48x48" href="/favicon-48.png" /> 65 <link rel="icon" sizes="152x152" href="/favicon-152.png" /> 66 <link rel="icon" sizes="196x196" href="/favicon-196.png" /> 67 68 <link 69 rel="chrome-webstore-item" 70 href="https://chrome.google.com/webstore/detail/odpdkefpnfejbfnmdilmfhephfffmfoh" 71 /> 72 73
73<script> 74 var _rollbarConfig = { 75 accessToken: "2174dfeba5b7427fa352fae8b9bd61ec", 76 captureUncaught: true, 77 captureUnhandledRejections: true, 78 payload: { 79 environment: "production", 80 client: { 81 javascript: { 82 source_map_enabled: true, 83 code_version: "967502f21f6f5fb5b057400e778280191b6d728b", 84 guess_uncaught_frames: true, 85 }, 86 }, 87 }, 88 // Limit the number of error reports per page load 89 maxItems: 1, 90 checkIgnore: (isUncaught, args, payload) => { 91 // Ignore "errors" from 4XX responses, since these are expected behavior 92 const status = 93 payload?.body?.trace?.extra?.jqXHR?.status ?? 94 payload?.body?.trace?.extra?.status; 95 if (status && /^4[0-9]{2}$/.test(status)) { 96 console.log("Ignoring 4XX error"); 97 return true; 98 } 99 return false; 100 }, 101 }; 102 // Rollbar Snippet 103 // prettier-ignore 104 !function(r){function o(n){if(e[n])return e[n].exports;var t=e[n]={exports:{},id:n,loaded:!1};return r[n].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}var e={};return o.m=r,o.c=e,o.p="",o(0)}([function(r,o,e){"use strict";var n=e(1),t=e(4);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdnjs.cloudflare.com/ajax/libs/rollbar.js/2.2.10/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=n.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=n.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,o,e){"use strict";function n(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}function t(r,o){this.options=r,this._rollbarOldOnError=null;var e=s++;this.shimId=function(){return e},window&&window._rollbarShims&&(window._rollbarShims[e]={handler:o,messages:[]})}function a(r,o){var e=o.globalAlias||"Rollbar";if("object"==typeof r[e])return r[e];r._rollbarShims={},r._rollbarWrappedError=null;var t=new p(o);return n(function(){o.captureUncaught&&(t._rollbarOldOnError=r.onerror,i.captureUncaughtExceptions(r,t,!0),i.wrapGlobals(r,t,!0)),o.captureUnhandledRejections&&i.captureUnhandledRejections(r,t,!0);var n=o.autoInstrument;return o.enabled!==!1&&(void 0===n||n===!0||"object"==typeof n&&n.network)&&r.addEventListener&&(r.addEventListener("load",t.captureLoad.bind(t)),r.addEventListener("DOMContentLoaded",t.captureDomContentLoaded.bind(t))),r[e]=t,t})()}function l(r){return n(function(){var o=this,e=Array.prototype.slice.call(arguments,0),n={shim:o,method:r,args:e,ts:new Date};window._rollbarShims[this.shimId()].messages.push(n)})}var i=e(2),s=0,d=e(3),c=function(r,o){return new t(r,o)},p=d.bind(null,c);t.prototype.loadFull=function(r,o,e,t,a){var l=function(){var o;if(void 0===r._rollbarDidLoad){o=new Error("rollbar.js did not load");for(var e,n,t,l,i=0;e=r._rollbarShims[i++];)for(e=e.messages||[];n=e.shift();)for(t=n.args||[],i=0;i<t.length;++i)if(l=t[i],"function"==typeof l){l(o);break}}"function"==typeof a&&a(o)},i=!1,s=o.createElement("script"),d=o.getElementsByTagName("script")[0],c=d.parentNode;s.crossOrigin="",s.src=t.rollbarJsUrl,e||(s.async=!0),s.onload=s.onreadystatechange=n(function(){if(!(i||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){s.onload=s.onreadystatechange=null;try{c.removeChild(s)}catch(r){}i=!0,l()}}),c.insertBefore(s,d)},t.prototype.wrap=function(r,o,e){try{var n;if(n="function"==typeof o?o:function(){return o||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){e&&"function"==typeof e&&e.apply(this,arguments);try{return r.apply(this,arguments)}catch(e){var o=e;throw"string"==typeof o&&(o=new String(o)),o._rollbarContext=n()||{},o._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=o,o}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var t in r)r.hasOwnProperty(t)&&(r._rollbar_wrapped[t]=r[t]);return r._rollbar_wrapped}catch(o){return r}};for(var u="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","),f=0;f<u.length;++f)t.prototype[u[f]]=l(u[f]);r.exports={setupShim:a,Rollbar:p}},function(r,o){"use strict";function e(r,o,e){if(r){var t;"function"==typeof o._rollbarOldOnError?t=o._rollbarOldOnError:r.onerror&&!r.onerror.belongsToShim&&(t=r.onerror,o._rollbarOldOnError=t);var a=function(){var e=Array.prototype.slice.call(arguments,0);n(r,o,t,e)};a.belongsToShim=e,r.onerror=a}}function n(r,o,e,n){r._rollbarWrappedError&&(n[4]||(n[4]=r._rollbarWrappedError),n[5]||(n[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null),o.handleUncaughtException.apply(o,n),e&&e.apply(r,n)}function t(r,o,e){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var n=function(r){var e=r.reason,n=r.promise,t=r.detail;!e&&t&&(e=t.reason,n=t.promise),o&&o.handleUnhandledRejection&&o.handleUnhandledRejection(e,n)};n.belongsToShim=e,r._rollbarURH=n,r.addEventListener("unhandledrejection",n)}}function a(r,o,e){if(r){var n,t,a="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDB
104Request,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(n=0;n<a.length;++n)t=a[n],r[t]&&r[t].prototype&&l(o,r[t].prototype,e)}}function l(r,o,e){if(o.hasOwnProperty&&o.hasOwnProperty("addEventListener")){for(var n=o.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var t=function(o,e,t){n.call(this,o,r.wrap(e),t)};t._rollbarOldAdd=n,t.belongsToShim=e,o.addEventListener=t;for(var a=o.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,o,e){a.call(this,r,o&&o._rollbar_wrapped||o,e)};l._rollbarOldRemove=a,l.belongsToShim=e,o.removeEventListener=l}}r.exports={captureUncaughtExceptions:e,captureUnhandledRejections:t,wrapGlobals:a}},function(r,o){"use strict";function e(r,o){this.impl=r(o,this),this.options=o,n(e.prototype)}function n(r){for(var o=function(r){return function(){var o=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,o)}},e="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","),n=0;n<e.length;n++)r[e[n]]=o(e[n])}e.prototype._swapAndProcessMessages=function(r,o){this.impl=r(this.options);for(var e,n,t;e=o.shift();)n=e.method,t=e.args,this[n]&&"function"==typeof this[n]&&("captureDomContentLoaded"===n||"captureLoad"===n?this[n].apply(this,[t[0],e.ts]):this[n].apply(this,t));return this},r.exports=e},function(r,o){"use strict";r.exports=function(r){return function(o){if(!o&&!window._rollbarInitialized){r=r||{};for(var e,n,t=r.globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;e=window._rollbarShims[i++];)n||(n=e.handler),e.handler._swapAndProcessMessages(l,e.messages);window[t]=n,window._rollbarInitialized=!0}}}}]); 105 // End Rollbar Snippet 106 </script>
106 107 108 <!-- Google tag (gtag.js) -->
vendor: 80 bytes, lines 108-111
108 109 <script 110 async 111 src="https://www.googletagmanager.com/gtag/js?id=
111G-SZ1M22CFNJ
vendor: 21 bytes, lines 111-113
111" 112 ></script> 113
113<script> 114
vendor: 167 bytes, lines 114-120
114window.dataLayer = window.dataLayer || []; 115 function gtag() { 116 dataLayer.push(arguments); 117 } 118 gtag("js", new Date()); 119 120 gtag("config", "
120G-SZ1M22CFNJ
vendor: 8 bytes, lines 120-121
120"); 121
121</script>
121 122 123
123<script 124 defer 125 src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" 126 ></script>
126 127
127<script defer src="/src/pages/landingPage.js?bust=967502f21f6f5fb5b057400e778280191b6d728b"></script>
127 128 129 <title> 130 Readlang | About 131 </title> 132 133 <meta 134 name="description" 135 content="Learn any language by reading what you love. Click words to translate, build vocabulary with smart flashcards, and read articles, books, and web pages in 100+ languages. Free to start." 136 /> 137 138 <meta 139 name="keywords" 140 content="Reading, 141 Language Learning, 142 Languages, 143 Flashcards, 144 Spaced Repetition, 145 Extensive Reading, 146 Intensive Reading, 147 ESL, 148 Second Language Acquisition" 149 /> 150 151 152 <meta property="og:title" content="Readlang | About" /> 153 <meta property="og:description" content="Learn any language by reading what you love. Click words to translate, build vocabulary with smart flashcards, and read articles, books, and web pages in 100+ languages. Free to start." /> 154 <meta property="og:type" content="website" /> 155 156
156<script type="application/ld+json"> 157 { 158 "@context": "https://schema.org", 159 "@type": "Organization", 160 "name": "Readlang", 161 "url": "https://readlang.com", 162 "logo": "https://readlang.com/content/landingPages/bunny.svg", 163 "description": "Language learning through reading. Click to translate words, practice with smart flashcards, and read in 100+ languages.", 164 "founder": { 165 "@type": "Person", 166 "name": "Steve Ridout", 167 "url": "https://steveridout.com" 168 }, 169 "sameAs": [ 170 "https://www.facebook.com/readlang", 171 "https://x.com/Readlang" 172 ] 173 } 174 </script>
174 175 176 </head> 177 <body 178 id="aboutPage" 179 class="" 180 > 181 <div class="headerSection"> 182 <div class="container"> 183 <div class="max row primary-padding"> 184 <div class="row logo_container"> 185 <img 186 onclick="window.location.href='/'" 187 alt="logo" 188 src="/content/landingPages/bunny-logo.svg" 189 width="48" 190 height="41" 191 class="pointer logo" 192 /> 193 <div class="text_futura logo_title">Readlang</div> 194 </div> 195 196 <div class="row nav_options"> 197 <a href="/landing-page" class="nav_item "> 198 Home 199 </a> 200 <a href="/features" class="nav_item "> 201 Features 202 </a> 203 <a href="/testimonials" class="nav_item "> 204 Testimonials 205 </a> 206 <a href="/pricing" class="nav_item "> 207 Pricing 208 </a> 209 <a href="/about" class="nav_item nav_item_active"> 210 About 211 </a> 212 <button 213 class="outline button drop-shadow sign_in_button showLoginButton" 214 > 215 Sign in 216 </button> 217 <button class="mobile_menu"> 218 <img 219 class="hamburgerButton" 220 alt="menu" 221 width="18" 222 height="18" 223 src="/content/landingPages/menu.png" 224 /> 225 <img 226 class="closeButton" 227 alt="menu" 228 width="24" 229 height="24" 230 src="/content/landingPages/close.png" 231 /> 232 </div> 233 </div> 234 <div class="drawer_container" style="display: none"> 235 <a href="/" class="drawer_item "> 236 Home 237 </a> 238 <a href="/features" class="drawer_item "> 239 Features 240 </a> 241 <a href="/testimonials" class="drawer_item "> 242 Testimonials 243 </a> 244 <a href="/pricing" class="drawer_item "> 245 Pricing 246 </a> 247 <a href="/about" class="drawer_item drawer_item_active"> 248 About 249 </a> 250 </div> 251 </div> 252 </div> 253 </div> 254 <main class="body_wrapper"> 255 256 <div 257 class="title_header primary-padding " 258 > 259 About Readlang 260 </div> 261 262 <div class="aboutSection"> 263 <div class="column primary-padding"> 264 <div class="about_section_container"> 265 <div class="about_title"> 266 Readlang aspires to be the best reading tool in the world for language 267 learners. It lets you: 268 </div> 269 <div class="row_center about_item"> 270 <div> 271 <img 272 src="/content/landingPages/about-a.png" 273 width="120" 274 height="120" 275 alt="about" 276 class="about_image" 277 /> 278 </div> 279 <div> 280 Read any <strong>native content</strong>. The Chrome extension and 281 browser bookmarklets enable reading or importing of almost any 282 website. Copy and paste or file upload enables you to read almost any 283 digital text you can get your hands on, including entire novels. 284 </div> 285 </div> 286 <div class="row_center about_item"> 287 <div> 288 <img 289 src="/content/landingPages/about-b.png" 290 width="120" 291 height="120" 292 alt="about" 293 class="about_image" 294 /> 295 </div> 296 <div> 297 Rapidly <strong>understand new words and phrases</strong> with the aid 298 of translations, dictionaries and AI based explanations. Unlike some 299 other websites which are full of clutter and adverts, the reading 300 interface in Readlang is designed to be as clean and distraction free 301 as possible, allowing you to immerse yourself in the content of the 302 text as much as possible. 303 </div> 304 </div> 305 <div class="row_center about_item"> 306 <div> 307 <img 308 src="/content/landingPages/about-c.png" 309 width="120" 310 height="120" 311 alt="about" 312 class="about_image" 313 /> 314 </div> 315 <div> 316 <strong>Learn words in context</strong> using flashcards. From all the 317 new words and phrases you encounter while reading, Readlang picks the 318 most useful words for you to practice based on 319 <a href="https://en.wikipedia.org/wiki/Word_lists_by_frequency" 320 >word frequency lists</a 321 >. As you practice, Readlang schedules words using a 322 <a href="https://en.wikipedia.org/wiki/Spaced_repetition" 323 >spaced repetition algorithm</a 324 >. 325 </div> 326 </div> 327 <div> 328 Take a minute to read the 329 <a href="/testimonials"> 330 testimonials from happy language learners around the world 331 </a> 332 . 333 </div> 334 </div> 335 </div> 336 </div> 337 338 <div class="videoSection"> 339 <div class="primary-padding video_section_container"> 340 <div class="column video_section_content"> 341 <div class="video_section_title">Video</div> 342 <div class="video_section_tag_line"> 343 A short Readlang explainer video from me, Steve. 344 </div> 345 <div class="iframe_container"> 346 <iframe 347 class="video_iframe" 348 src="//www.youtube.com/embed/SSG4ahvzdls" 349 title="Readlang video" 350 allowfullscreen 351 ></iframe> 352 </div> 353 </div> 354 </div> 355 </div> 356 357 <div class="teamSection"> 358 <div class="column primary-padding"> 359 <div class="team_container">
360 <div class="row team_container_content"> 361 <div> 362 <img 363 alt="steve" 364 src="/content/landingPages/steve.png" 365 width="300" 366 height="300" 367 class="steve_image" 368 /> 369 </div> 370 371 <div> 372 <div class="team_title">Team</div> 373 <div class="team_content_a"> 374 I'm Steve Ridout, creator of 375 <a href="https://readlang.com">Readlang</a> and previously a staff 376 software engineer at <a href="https://duolingo.com">Duolingo</a> where I created the 377 Duolingo Stories feature. You can find more about me at 378 <a href="https://steveridout.com">steveridout.com</a>. 379 </div> 380 <div class="team_content_b"> 381 I created Readlang because I couldn't find a simple tool to learn 382 Spanish the way I wanted to, by reading novels and other native 383 content. 384 </div> 385 </div> 386 </div> 387 <div> 388 <div class="team_title">Contact</div> 389 <div> 390 You can contact support or leave feedback via the 391 <a href="https://forum.readlang.com">feedback forum</a>. 392 </div> 393 <!-- discourage these for now, since I don't check them much 394 <div class="icon_container"> 395 <a href="https://x.com/Readlang"> 396 <img 397 src="/content/landingPages/facebook-sq.png" 398 alt="facebook" 399 width="26" 400 height="26" 401 /> 402 </a> 403 <a href="https://www.facebook.com/readlang"> 404 <img 405 src="/content/landingPages/twitter-sq.png" 406 alt="twitter" 407 width="26" 408 height="26" 409 /> 410 </a> 411 </div> 412 --> 413 </div> 414 </div> 415 </div> 416 </div> 417 418 <!-- 419 <TeamSection /> 420 <StartLearningWithBackgroundPattern /> --> 421 422 </main> 423 <div class="footer"> 424 <div class="max primary-padding"> 425 <div class="row footer_top_container"> 426 <div class="row section_left"> 427 <div 428 onclick="window.location.href='/'" 429 class="column pointer logo_section" 430 > 431 <img 432 src="/content/landingPages/bunny.svg" 433 alt="Readlang logo" 434 width="48" 435 height="41" 436 class="logo" 437 /> 438 <div class="text_futura logo_title">Readlang</div> 439 </div> 440 <div class="connect_and_get_section"> 441 <div class="contact_section"> 442 <div class="contact_section_title">Connect with us</div> 443 <div class="contact_section_links"> 444 <a href="https://www.facebook.com/readlang"> 445 <img 446 width="16" 447 height="16" 448 src="/content/landingPages/facebook.png" 449 alt="facebook" 450 /> 451 </a> 452 <a href="https://x.com/Readlang"> 453 <img 454 width="16" 455 height="16" 456 src="/content/landingPages/twitter.png" 457 alt="facebook" 458 /> 459 </a> 460 </div> 461 </div> 462 </div> 463 </div> 464 <div class="row section_right"> 465 <div class="links"> 466 <a 467 href="https://www.youtube.com/watch?v=ntVQ2L5s6FI&list=PLIGa-eWCssj9K_PpNGLnIs8vcENanVx3_" 468 >Tutorial Videos</a 469 > 470 <a href="https://blog.readlang.com">Readlang Blog</a> 471 <a href="/webReader">Web Reader Extension & Bookmarklet</a> 472 <a 473 href="https://forum.readlang.com/t/install-readlang-on-your-iphone-ipad-or-android-home-screen/45" 474 >Readlang for iOS and Android</a 475 > 476 </div> 477 <div class="links"> 478 <a href="https://forum.readlang.com">Help & Feedback</a> 479 <a href="/pricing">Pricing</a> 480 481 <a href="/landing-page">Landing Page</a> 482 <a href="/about">About & Contact</a> 483 </div> 484 </div> 485 </div> 486 <div class="row_center bottom_container"> 487 <div class="bottom_item">Readlang 2026</div> 488 <a href="/termsOfService" class="bottom_item">Terms of Service</a> 489 <a href="/privacyPolicy" class="bottom_item">Privacy Policy</a> 490 </div> 491 </div> 492 </div> 493 <div id="loginDialog" class="modalDialog"> 494 <button class="googleSignInButton button"> 495 <div class="smallPadded"></div> 496 </button> 497 <form name=login class="emailSignInControls"> 498 <p id=invalidCredentials >Email or password incorrect, please try again</p> 499 <table> 500 <tr> 501 <td>Email</td> 502 <td><input type=email name=email placeholder="Enter your email" /></td> 503 </tr> 504 <tr> 505 <td>Password</td> 506 <td><input type=password name=password placeholder="Enter your password" /></td> 507 </tr> 508 <tr> 509 <td><label for=rememberMe>Remember Me</label></td> 510 <td><input id=rememberMe type=checkbox name=rememberMe checked="checked"/></td> 511 </tr> 512 </table> 513 </form> 514 <button class="button wide validationError" id="loginButton"> 515 <div class="smallPadded">
516 <span class="emailSignupText">Sign in with email</span> 517 <img class="throbber" src="/content/throbberDarkGreen.gif" style="padding-left:10px"/> 518 </div> 519 </button> 520 <a href="/start" class="button wide validationError" style="margin-top: 15px"> 521 <div class="smallPadded"> 522 <span class="emailSignupText">Create new account</span> 523 </div> 524 </a> 525 <div class="emailSignInControls" style="margin-top:10px"> 526 <small>Forgot Password? <a href="#" id="showResetPassword" >Click here to reset</a></small> 527 </div> 528 </div> 529 <div id="resetPasswordDialog" class="modalDialog"> 530 <table> 531 <tr> 532 <td>Email</td> 533 <td><input type=email name=email placeholder="Type email here" /></td> 534 </tr> 535 </table> 536 <button class="button lastButton wide" id=resetPasswordButton> 537 <div class=smallPadded>Reset Password</div> 538 </button> 539 </div> 540 541 <div id="chromeExtensionDialog" class="modalDialog"> 542 <h3>Thanks for installing our Chrome extension!</h3> 543 <p>Visit <i><strong>any web page</strong></i> in the language you are learning, and use the Readlang extension to help read it.</p> 544 <img class="screenshot small" src=/content/introStep1Crop.png /> 545 <h3 style="margin-top:30px">Looking for websites to read now?</h3> 546 <a href="/links" class="button" style="width:100%"><div class="padded">Read suggested web-sites</div></a> 547 </div> 548 549 <div id=modalBackground> 550 </div> 551 </body> 552</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.