CINXE.COM
Learn language in context - Clozemaster
<!DOCTYPE html> <html lang="en"> <head><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.clozemaster.com/","20231107155806","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1699372686"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <script src="https://web.archive.org/web/20231107155806js_/https://www.googleoptimize.com/optimize.js?id=OPT-MMMMQ64"></script> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <meta content="IE=edge" http-equiv="X-UA-Compatible"> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"74550c99c6","applicationID":"74650971","transactionName":"IV9WTEpcVVoBQU1HFQNEUVsXX1hYAFoMUw==","queueTime":0,"applicationTime":23,"agent":""}</script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"74550c99c6",applicationID:"74650971"};;/*! For license information please see nr-loader-rum-1.246.1.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,n={234:(e,t,n)=>{n.d(t,{P_:()=>h,Mt:()=>m,C5:()=>s,DL:()=>w,OP:()=>j,lF:()=>S,Yu:()=>_,Dg:()=>v,CX:()=>c,GE:()=>A,sU:()=>T});var r=n(8632),i=n(9567);const a={beacon:r.ce.beacon,errorBeacon:r.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},o={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!o[e])throw new Error("Info for ".concat(e," was never set"));return o[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");o[e]=(0,i.D)(t,a),(0,r.Qy)(e,o[e],"info")}const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=n(7056),l=n(50);const f=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,sampling_rate:50,error_sampling_rate:50,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector=t+",[data-nr-mask]":null===t?e.mask_selector=t:(0,l.Z)("An invalid session_replay.mask_selector was provided and will not be used",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},g={},p="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(p);if(!g[e])throw new Error("Configuration for ".concat(e," was never set"));return g[e]}function v(e,t){if(!e)throw new Error(p);g[e]=(0,i.D)(t,f()),(0,r.Qy)(e,g[e],"config")}function m(e,t){if(!e)throw new Error(p);var n=h(e);if(n){for(var r=t.split("."),i=0;i<r.length-1;i++)if("object"!=typeof(n=n[r[i]]))return;n=n[r[r.length-1]]}return n}const b={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},y={};function w(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!y[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return y[e]}function A(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");y[e]=(0,i.D)(t,b),(0,r.Qy)(e,y[e],"loader_config")}const _=(0,r.mF)().o;var x=n(385),D=n(6818);const k={buildEnv:D.Re,customTransaction:void 0,disabled:!1,distMethod:D.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:Math.floor(x._A?.performance?.timeOrigin||x._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:""+x._A.location,ptid:void 0,releaseIds:{},session:void 0,xhrWrappable:"function"==typeof x._A.XMLHttpRequest?.prototype?.addEventListener,version:D.q4,denyList:void 0},E={};function j(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!E[e])throw new Error("Runtime for ".concat(e," was never set"));return E[e]}function T(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");E[e]=(0,i.D)(t,k),(0,r.Qy)(e,E[e],"runtime")}function S(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,n)=>{n.d(t,{D:()=>i});var r=n(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,r.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,r.Z)("Setting a Configurable requires a model to set its initial properties");const n=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),a=0===Object.keys(n).length?e:n;for(let o in a)if(void 0!==e[o])try{Array.isArray(e[o])&&Array.isArray(t[o])?n[o]=Array.from(new Set([...e[o],...t[o]])):"object"==typeof e[o]&&"object"==typeof t[o]?n[o]=i(e[o],t[o]):n[o]=e[o]}catch(e){(0,r.Z)("An error occurred while setting a property of a Configurable",e)}return n}catch(e){(0,r.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,n)=>{n.d(t,{Re:()=>i,gF:()=>a,q4:()=>r});const r="1.246.1",i="PROD",a="CDN"},385:(e,t,n)=>{n.d(t,{Nk:()=>u,Tt:()=>s,_A:()=>a,cv:()=>l,iS:()=>o,il:()=>r,ux:()=>c,v6:()=>i,w1:()=>d});const r="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=r?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),s=(a?.location,/iPad|iPhone|iPod/.test(a.navigator?.userAgent)),c=s&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Boolean(r&&window.document.documentMode)),u=!!a.navigator?.sendBeacon,l=Math.floor(a?.performance?.timeOrigin||a?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,n)=>{n.d(t,{w:()=>a});var r=n(50);const i={agentIdentifier:"",ee:void 0};class a{constructor(e){try{if("object"!=typeof e)return(0,r.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,n]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=n)}))}catch(e){(0,r.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,n)=>{n.d(t,{L:()=>u,R:()=>c});var r=n(8325),i=n(1284),a=n(4322),o=n(3325);const s={};function c(e,t){const n={staged:!1,priority:o.p[t]||0};d(e),s[e].get(t)||s[e].set(t,n)}function d(e){e&&(s[e]||(s[e]=new Map))}function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(d(e),!e||!s[e].get(t))return o(t);s[e].get(t).staged=!0;const n=[...s[e]];function o(t){const n=e?r.ee.get(e):r.ee,o=a.X.handlers;if(n.backlog&&o){var s=n.backlog[t],c=o[t];if(c){for(var d=0;s&&d<s.length;++d)l(s[d],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,n){n[0].on(e,n[1])}))}))}delete o[t],n.backlog[t]=null,n.emit("drain-"+t,[])}}n.every((e=>{let[t,n]=e;return n.staged}))&&(n.sort(((e,t)=>e[1].priority-t[1].priority)),n.forEach((t=>{let[n]=t;s[e].delete(n),o(n)})))}function l(e,t){var n=e[1];(0,i.D)(t[n],(function(t,n){var r=e[0];if(n[0]===r){var i=n[1],a=e[3],o=e[2];i.apply(a,o)}}))}},8325:(e,t,n)=>{n.d(t,{A:()=>c,ee:()=>d});var r=n(8632),i=n(2210),a=n(234);class o{constructor(e){this.contextId=e}}var s=n(3117);const c="nr@context:".concat(s.a),d=function e(t,n){var r={},s={},u={},f=!1;try{f=16===n.length&&(0,a.OP)(n).isolatedBacklog}catch(e){}var g={on:h,addEventListener:h,removeEventListener:function(e,t){var n=r[e];if(!n)return;for(var i=0;i<n.length;i++)n[i]===t&&n.splice(i,1)},emit:function(e,n,r,i,a){!1!==a&&(a=!0);if(d.aborted&&!i)return;t&&a&&t.emit(e,n,r);for(var o=p(r),c=v(e),u=c.length,l=0;l<u;l++)c[l].apply(o,n);var f=b()[s[e]];f&&f.push([g,e,n,o]);return o},get:m,listeners:v,context:p,buffer:function(e,t){const n=b();if(t=t||"feature",g.aborted)return;Object.entries(e||{}).forEach((e=>{let[r,i]=e;s[i]=t,t in n||(n[t]=[])}))},abort:l,aborted:!1,isBuffering:function(e){return!!b()[s[e]]},debugId:n,backlog:f?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return g;function p(e){return e&&e instanceof o?e:e?(0,i.X)(e,c,(()=>new o(c))):new o(c)}function h(e,t){r[e]=v(e).concat(t)}function v(e){return r[e]||[]}function m(t){return u[t]=u[t]||e(g,t)}function b(){return g.backlog}}(void 0,"globalEE"),u=(0,r.fP)();function l(){d.aborted=!0,d.backlog={}}u.ee||(u.ee=d)},5546:(e,t,n)=>{n.d(t,{E:()=>r,p:()=>i});var r=n(8325).ee.get("handle");function i(e,t,n,i,a){a?(a.buffer([e],i),a.emit(e,t,n)):(r.buffer([e],i),r.emit(e,t,n))}},4322:(e,t,n)=>{n.d(t,{X:()=>a});var r=n(5546);a.on=o;var i=a.handlers={};function a(e,t,n,a){o(a||r.E,i,e,t,n)}function o(e,t,n,i,a){a||(a="feature"),e||(e=r.E);var o=t[a]=t[a]||{};(o[n]=o[n]||[]).push([e,i])}},3239:(e,t,n)=>{n.d(t,{bP:()=>s,iz:()=>c,m$:()=>o});var r=n(385);let i=!1,a=!1;try{const e={get passive(){return i=!0,!1},get signal(){return a=!0,!1}};r._A.addEventListener("test",null,e),r._A.removeEventListener("test",null,e)}catch(e){}function o(e,t){return i||a?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,o(n,r))}function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,o(n,r))}},3117:(e,t,n)=>{n.d(t,{a:()=>r});const r=(0,n(4402).Rl)()},4402:(e,t,n)=>{n.d(t,{Rl:()=>o,ky:()=>s});var r=n(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function a(e,t){return e?15&e[t]:16*Math.random()|0}function o(){const e=r._A?.crypto||r._A?.msCrypto;let t,n=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?a(t,++n).toString(16):"y"===e?(3&a()|8).toString(16):e)).join("")}function s(e){const t=r._A?.crypto||r._A?.msCrypto;let n,i=0;t&&t.getRandomValues&&(n=t.getRandomValues(new Uint8Array(31)));const o=[];for(var s=0;s<e;s++)o.push(a(n,++i).toString(16));return o.join("")}},7056:(e,t,n)=>{n.d(t,{Bq:()=>r,Hb:()=>a,oD:()=>i});const r="NRBA",i=144e5,a=18e5},7894:(e,t,n)=>{function r(){return Math.round(performance.now())}n.d(t,{z:()=>r})},50:(e,t,n)=>{function r(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}n.d(t,{Z:()=>r})},2587:(e,t,n)=>{n.d(t,{N:()=>c,T:()=>d});var r=n(8325),i=n(5546),a=n(3325);const o={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]},s=new Set;function c(e,t){const n=r.ee.get(t);e&&"object"==typeof e&&(s.has(t)||Object.entries(e).forEach((e=>{let[t,r]=e;o[t]?o[t].forEach((e=>{r?(0,i.p)("feat-"+t,[],void 0,e,n):(0,i.p)("block-"+t,[],void 0,e,n),(0,i.p)("rumresp-"+t,[Boolean(r)],void 0,e,n)})):r&&(0,i.p)("feat-"+t,[],void 0,void 0,n),d[t]=Boolean(r)})),Object.keys(o).forEach((e=>{void 0===d[e]&&(o[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,n))),d[e]=!1)})),s.add(t))}const d={}},2210:(e,t,n)=>{n.d(t,{X:()=>i});var r=Object.prototype.hasOwnProperty;function i(e,t,n){if(r.call(e,t))return e[t];var i=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,n)=>{n.d(t,{D:()=>r});const r=(e,t)=>Object.entries(e||{}).map((e=>{let[n,r]=e;return t(n,r)}))},4351:(e,t,n)=>{n.d(t,{P:()=>a});var r=n(8325);const i=()=>{const e=new WeakSet;return(t,n)=>{if("object"==typeof n&&null!==n){if(e.has(n))return;e.add(n)}return n}};function a(e){try{return JSON.stringify(e,i())}catch(e){try{r.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,n)=>{n.d(t,{K:()=>o,b:()=>a});var r=n(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(i())return e();(0,r.bP)("load",e,t)}function o(e){if(i())return e();(0,r.iz)("DOMContentLoaded",e)}},8632:(e,t,n)=>{n.d(t,{EZ:()=>d,Qy:()=>c,ce:()=>a,fP:()=>o,gG:()=>u,mF:()=>s});var r=n(7894),i=n(385);const a={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function o(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=o();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,n){let i=o();const a=i.initializedAgents||{},s=a[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,r.z)(),date:new Date}),i.initializedAgents={...a,[e]:{...s,[n]:t}},i}function d(e,t){o()[e]=t}function u(){return function(){let e=o();const t=e.info||{};e.info={beacon:a.beacon,errorBeacon:a.errorBeacon,...t}}(),function(){let e=o();const t=e.init||{};e.init={...t}}(),s(),function(){let e=o();const t=e.loader_config||{};e.loader_config={...t}}(),o()}},7956:(e,t,n)=>{n.d(t,{N:()=>i});var r=n(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,r.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),n,i)}},3081:(e,t,n)=>{n.d(t,{gF:()=>a,mY:()=>i,t9:()=>r,vz:()=>s,xS:()=>o});const r=n(3325).D.metrics,i="sm",a="cm",o="storeSupportabilityMetrics",s="storeEventMetrics"},7633:(e,t,n)=>{n.d(t,{t:()=>r});const r=n(3325).D.pageViewEvent},9251:(e,t,n)=>{n.d(t,{t:()=>r});const r=n(3325).D.pageViewTiming},5938:(e,t,n)=>{n.d(t,{W:()=>i});var r=n(8325);class i{constructor(e,t,n){this.agentIdentifier=e,this.aggregator=t,this.ee=r.ee.get(e),this.featureName=n,this.blocked=!1}}},7530:(e,t,n)=>{n.d(t,{j:()=>b});var r=n(3325),i=n(234),a=n(5546),o=n(8325),s=n(7894),c=n(8e3),d=n(3960),u=n(385),l=n(50),f=n(3081),g=n(8632);function p(){const e=(0,g.gG)();["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start"].forEach((t=>{e[t]=function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];let a=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&a.push(e.api[t](...r))})),a.length>1?a:a[0]}(t,...r)}}))}var h=n(2587);const v=e=>{const t=e.startsWith("http");e+="/",n.p=t?e:"https://"+e};let m=!1;function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},b=arguments.length>2?arguments[2]:void 0,y=arguments.length>3?arguments[3]:void 0,{init:w,info:A,loader_config:_,runtime:x={loaderType:b},exposed:D=!0}=t;const k=(0,g.gG)();A||(w=k.init,A=k.info,_=k.loader_config),(0,i.Dg)(e,w||{}),(0,i.GE)(e,_||{}),A.jsAttributes??={},u.v6&&(A.jsAttributes.isWorker=!0),(0,i.CX)(e,A);const E=(0,i.P_)(e),j=[A.beacon,A.errorBeacon];m||(m=!0,E.proxy.assets&&(v(E.proxy.assets),j.push(E.proxy.assets)),E.proxy.beacon&&j.push(E.proxy.beacon)),x.denyList=[...E.ajax.deny_list||[],...E.ajax.block_internal?j:[]],(0,i.sU)(e,x),p();const T=function(e,t){t||(0,c.R)(e,"api");const g={};var p=o.ee.get(e),h=p.get("tracer"),v="api-",m=v+"ixn-";function b(t,n,r,a){const o=(0,i.C5)(e);return null===n?delete o.jsAttributes[t]:(0,i.CX)(e,{...o,jsAttributes:{...o.jsAttributes,[t]:n}}),A(v,r,!0,a||null===n?"session":void 0)(t,n)}function y(){}["setErrorHandler","finished","addToTrace","addRelease"].forEach((e=>{g[e]=A(v,e,!0,"api")})),g.addPageAction=A(v,"addPageAction",!0,r.D.pageAction),g.setCurrentRouteName=A(v,"routeName",!0,r.D.spa),g.setPageViewName=function(t,n){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(n||"https://web.archive.org/web/20231107155806/http://custom.transaction")+t,A(v,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",n);(0,l.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t,"> was provided."))}else(0,l.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},g.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,l.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return b("application.version",e,"setApplicationVersion",!1);(0,l.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},g.start=e=>{try{const t=e?"defined":"undefined";(0,a.p)(f.xS,["API/start/".concat(t,"/called")],void 0,r.D.metrics,p);const n=Object.values(r.D);if(void 0===e)e=n;else{if((e=Array.isArray(e)&&e.length?e:[e]).some((e=>!n.includes(e))))return(0,l.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(n));e.includes(r.D.pageViewEvent)||e.push(r.D.pageViewEvent)}e.forEach((e=>{p.emit("".concat(e,"-opt-in"))}))}catch(e){(0,l.Z)("An unexpected issue occurred",e)}},g.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var n={},i=this,o="function"==typeof t;return(0,a.p)(m+"tracer",[(0,s.z)(),e,n],i,r.D.spa,p),function(){if(h.emit((o?"":"no-")+"fn-start",[(0,s.z)(),i,o],n),o)try{return t.apply(this,arguments)}catch(e){throw h.emit("fn-err",[arguments,this,e],n),e}finally{h.emit("fn-end",[(0,s.z)()],n)}}}};function A(e,t,n,i){return function(){return(0,a.p)(f.xS,["API/"+t+"/called"],void 0,r.D.metrics,p),i&&(0,a.p)(e+t,[(0,s.z)(),...arguments],n?null:this,i,p),n?void 0:this}}function _(){n.e(75).then(n.bind(n,7438)).then((t=>{let{setAPI:n}=t;n(e),(0,c.L)(e,"api")})).catch((()=>(0,l.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=A(m,e,void 0,r.D.spa)})),g.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,a.p)(f.xS,["API/noticeError/called"],void 0,r.D.metrics,p),(0,a.p)("err",[e,(0,s.z)(),!1,t],void 0,r.D.jserrors,p)},u.il?(0,d.b)((()=>_()),!0):_(),g}(e,y);return(0,g.Qy)(e,T,"api"),(0,g.Qy)(e,D,"exposed"),(0,g.EZ)("activatedFeatures",h.T),T}},3325:(e,t,n)=>{n.d(t,{D:()=>r,p:()=>i});const r={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[r.pageViewEvent]:1,[r.pageViewTiming]:2,[r.metrics]:3,[r.jserrors]:4,[r.ajax]:5,[r.sessionTrace]:6,[r.pageAction]:7,[r.spa]:8,[r.sessionReplay]:9}}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return n[e](a,a.exports,i),a.exports}i.m=n,i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>"nr-rum-1.246.1.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.246.1.PROD:",i.l=(n,r,a,o)=>{if(e[n])e[n].push(r);else{var s,c;if(void 0!==a)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==n||l.getAttribute("data-webpack")==t+a){s=l;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+a),s.src=n),e[n]=[r];var f=(t,r)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(r))),t)return t(r)},g=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://web.archive.org/web/20231107155806/https://js-agent.newrelic.com/",(()=>{var e={50:0,832:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise(((n,i)=>r=e[t]=[n,i]));n.push(r[2]=a);var o=i.p+i.u(t),s=new Error;i.l(o,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,r[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,a,[o,s,c]=n,d=0;if(o.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);if(c)c(i)}for(t&&t(n);d<o.length;d++)a=o[d],i.o(e,a)&&e[a]&&e[a][0](),e[a]=0},n=self["webpackChunk:NRBA-1.246.1.PROD"]=self["webpackChunk:NRBA-1.246.1.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{var e=i(50);class t{addPageAction(t,n){(0,e.Z)("Call to agent api addPageAction failed. The page action feature is not currently initialized.")}setPageViewName(t,n){(0,e.Z)("Call to agent api setPageViewName failed. The page view feature is not currently initialized.")}setCustomAttribute(t,n,r){(0,e.Z)("Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.")}noticeError(t,n){(0,e.Z)("Call to agent api noticeError failed. The js errors feature is not currently initialized.")}setUserId(t){(0,e.Z)("Call to agent api setUserId failed. The js errors feature is not currently initialized.")}setApplicationVersion(t){(0,e.Z)("Call to agent api setApplicationVersion failed. The agent is not currently initialized.")}setErrorHandler(t){(0,e.Z)("Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.")}finished(t){(0,e.Z)("Call to agent api finished failed. The page action feature is not currently initialized.")}addRelease(t,n){(0,e.Z)("Call to agent api addRelease failed. The js errors feature is not currently initialized.")}start(t){(0,e.Z)("Call to agent api addRelease failed. The agent is not currently initialized.")}}var n=i(3325),r=i(234);const a=Object.values(n.D);function o(e){const t={};return a.forEach((n=>{t[n]=function(e,t){return!1!==(0,r.Mt)(t,"".concat(e,".enabled"))}(n,e)})),t}var s=i(7530);var c=i(8e3),d=i(5938),u=i(3960),l=i(385);class f extends d.W{constructor(e,t,n){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,n),this.auto=i,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,r.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto&&(0,c.R)(e,n)}importAggregator(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on("".concat(this.featureName,"-opt-in"),(()=>{(0,c.R)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));const n=l.il&&!0===(0,r.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let a;this.onAggregateImported=new Promise((e=>{a=e}));const o=async()=>{let r;try{if(n){const{setupAgentSession:e}=await i.e(75).then(i.bind(i,3228));r=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t)}try{if(!this.shouldImportAgg(this.featureName,r))return(0,c.L)(this.agentIdentifier,this.featureName),void a(!1);const{lazyFeatureLoader:e}=await i.e(75).then(i.bind(i,8582)),{Aggregate:n}=await e(this.featureName,"aggregate");this.featAggregate=new n(this.agentIdentifier,this.aggregator,t),a(!0)}catch(t){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),t),this.abortHandler?.(),(0,c.L)(this.agentIdentifier,this.featureName),a(!1)}};l.il?(0,u.b)((()=>o()),!0):o()}shouldImportAgg(e,t){return e!==n.D.sessionReplay||!!r.Yu.MO&&(!1!==(0,r.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!t?.isNew||!!t?.state.sessionReplayMode))}}var g=i(7633);class p extends f{static featureName=g.t;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,g.t,n),this.importAggregator()}}var h=i(1117),v=i(1284);class m extends h.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,n,r,i){var a=this.getBucket(e,t,n,i);return a.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,v.D)(e,(function(e,n){t[e]=b(n,t[e])})),t}(r,a.metrics),a}merge(e,t,n,r,i){var a=this.getBucket(e,t,r,i);if(a.metrics){var o=a.metrics;o.count+=n.count,(0,v.D)(n,(function(e,t){if("count"!==e){var r=o[e],i=n[e];i&&!i.c?o[e]=b(i.t,r):o[e]=function(e,t){if(!t)return e;t.c||(t=y(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,o[e])}}))}else a.metrics=n}storeMetric(e,t,n,r){var i=this.getBucket(e,t,n);return i.stats=b(r,i.stats),i}getBucket(e,t,n,r){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:n||{}},r&&(i.custom=r)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},n="",r=!1,i=0;i<e.length;i++)t[n=e[i]]=w(this.aggregatedData[n]),t[n].length&&(r=!0),delete this.aggregatedData[n];return r?t:null}}function b(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=y(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function y(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function w(e){return"object"!=typeof e?[]:(0,v.D)(e,A)}function A(e,t){return t}var _=i(8632),x=i(4402),D=i(4351);var k=i(5546),E=i(7956),j=i(3239),T=i(7894),S=i(9251);class N extends f{static featureName=S.t;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,S.t,n),l.il&&((0,E.N)((()=>(0,k.p)("docHidden",[(0,T.z)()],void 0,S.t,this.ee)),!0),(0,j.bP)("pagehide",(()=>(0,k.p)("winPagehide",[(0,T.z)()],void 0,S.t,this.ee))),this.importAggregator())}}var C=i(3081);class P extends f{static featureName=C.t9;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,C.t9,n),this.importAggregator()}}new class extends t{constructor(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,x.ky)(16);super(),l._A?(this.agentIdentifier=n,this.sharedAggregator=new m({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),Object.assign(this,(0,s.j)(this.agentIdentifier,t,t.loaderType||"agent")),this.run()):(0,e.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,r.C5)(this.agentIdentifier),init:(0,r.P_)(this.agentIdentifier),loader_config:(0,r.DL)(this.agentIdentifier),runtime:(0,r.OP)(this.agentIdentifier)}}run(){const t="features";try{const r=o(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((e,t)=>n.p[e.featureName]-n.p[t.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===n.D.pageViewEvent){const i=function(e){switch(e){case n.D.ajax:return[n.D.jserrors];case n.D.sessionTrace:return[n.D.ajax,n.D.pageViewEvent];case n.D.sessionReplay:return[n.D.sessionTrace];case n.D.pageViewTiming:return[n.D.pageViewEvent];default:return[]}}(t.featureName);i.every((e=>r[e]))||(0,e.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(i),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,_.Qy)(this.agentIdentifier,this.features,t)}catch(n){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",n);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,_.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}addToTrace(t){(0,e.Z)("Call to agent api addToTrace failed. The session trace feature is not currently initialized.")}setCurrentRouteName(t){(0,e.Z)("Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.")}interaction(){(0,e.Z)("Call to agent api interaction failed. The spa feature is not currently initialized.")}}({features:[p,N,P],loaderType:"lite"})})()})();</script> <meta content="width=device-width, initial-scale=1" name="viewport"> <meta name="google-site-verification" content="s_ztndQJIkSYkblGXcHFBtvh-udKPfkGLSBh1Pivt1Q"/> <link rel="apple-touch-icon" sizes="57x57" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/web/20231107155806im_/https://www.clozemaster.com/icons/apple-icon-180x180.png"> <link rel="icon" type="image/png" sizes="192x192" href="/web/20231107155806im_/https://www.clozemaster.com/icons/android-icon-192x192.png"> <link rel="icon" type="image/png" sizes="32x32" href="/web/20231107155806im_/https://www.clozemaster.com/icons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="96x96" href="/web/20231107155806im_/https://www.clozemaster.com/icons/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="16x16" href="/web/20231107155806im_/https://www.clozemaster.com/icons/favicon-16x16.png"> <link rel="manifest" href="/web/20231107155806/https://www.clozemaster.com/icons/manifest.json"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png"> <meta name="theme-color" content="#ffffff"> <title>Learn language in context - Clozemaster</title> <meta content="Clozemaster is language learning gamification through mass exposure to vocabulary in context. Great post-Duolingo app and useful for language learners of all levels. Free to sign up and play!" name="description"> <meta content="learn, spanish, german, french, portuguese, italian, english, online, free, language, vocabulary, frequency, study, lessons, course" name="keywords"> <link rel="stylesheet" media="screen" href="https://web.archive.org/web/20231107155806cs_/https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"/> <link rel="stylesheet" media="all" href="/web/20231107155806cs_/https://www.clozemaster.com/assets/application-0d1f5631b5b4471dbaf5154a4caec5de8d5cd6612a9e6a4dd4c1a27b6af4ac88.css"/> <style> .video-bg { background-image: url(https://web.archive.org/web/20231107155806im_/https://d1ettzkkbejkw8.cloudfront.net/images/landing.png); } </style> <meta name="csrf-param" content="authenticity_token"/> <meta name="csrf-token" content="vvqlc4wihCzKmByEKLMp2GWKxtfzfLYPAUipRLbv6LYhkkXSY+4WYQPYDtfl9+TMzcuL4v/+gEB4aueGYN7+Ww=="/> <!-- start Mixpanel --><script type="text/javascript">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments, 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" "); for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://web.archive.org/web/20231107155806/https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//web.archive.org/web/20231107155806/https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]); mixpanel.init("b0fd93de7487026d8dc31f9673aa5bf9");</script><!-- end Mixpanel --> </script> </head> <body class="static landing body"> <div class="" id="body"> <script src="https://web.archive.org/web/20231107155806js_/https://script.tapfiliate.com/tapfiliate.js" type="text/javascript" async></script> <script type="text/javascript"> (function(t,a,p){t.TapfiliateObject=a;t[a]=t[a]||function(){ (t[a].q=t[a].q||[]).push(arguments)}})(window,'tap'); tap('create', '4088-9c96a6', { integration: "javascript" }); tap('detect'); </script> <div class="content"> <div class="static landing view"> <div id="landing"> <div id="nav"> <div class="container"> <div class="row"> <div class="col-xs-12"> <div class="actions"> <a class="link" href="/web/20231107155806/https://www.clozemaster.com/languages">Languages</a> <a class="link" href="/web/20231107155806/https://www.clozemaster.com/about">About</a> <a class="btn btn-success joystix" href="/web/20231107155806/https://www.clozemaster.com/login">Login</a> </div> <div class="brand joystix"> <a href="/web/20231107155806/https://www.clozemaster.com/">Clozemaster</a> </div> </div> </div> </div> </div> <div class="top-panel"> <div class="masthead"> <h1>Rapidly expand your vocabulary <br/>in another language.</h1> <p>Clozemaster is gamified language learning through mass exposure to vocabulary in context.</p> <div class="actions"> <a class="btn btn-success btn-lg joystix" href="/web/20231107155806/https://www.clozemaster.com/sign-up">Sign Up</a> <a class="btn btn-success btn-lg joystix" href="/web/20231107155806/https://www.clozemaster.com/languages">Play <span class="glyphicon glyphicon-chevron-right"></span> </a></div> <div id="scroll-down"> <div class="text">Scroll Down</div> <i class="fa fa-angle-down" aria-hidden="true"></i> </div> </div> </div> <div class="clearfix" id="features"> <div class="feature-grid"> <div style="max-width: 600px; margin: 0 auto; margin-bottom: 20px"> <h2 class="text-center">What's a "cloze"?</h2> <p class="text-center"> A cloze test (also cloze deletion test or occlusion test) is an exercise, test, or assessment consisting of a portion of language with certain items, words, or signs removed (cloze text), where the participant is asked to replace the missing language item. <em>- Wikipedia</em> </p> </div> <div class="container"> <div class="row"> <div class="col-sm-6 feature"> <h2>Everything in context.</h2> <p style="padding-bottom: 10px;"> No more single word flashcards. No more guessing how a word is used. Learn vocabulary in context by filling in the missing word for thousands of sentences. </p> </div> <div class="col-sm-6 feature"> <h2 class="text-center">More than 50 languages available.</h2> <p> And over 170 language pairings. Learn German from English, Portuguese from Swedish, or Russian from French. <a href="/web/20231107155806/https://www.clozemaster.com/languages">See them all.</a> </p> </div> </div> <div class="row"> <div class="col-sm-6 feature"> <h2 class="text-center">Fun and measureable progress.</h2> <p> Score points and work your way up the leaderboard. Master sentences via spaced repetition. Track your progress by word frequency. </p> </div> <div class="col-sm-6 feature"> <h2 class="text-center">Free to sign up and play.</h2> <p> Clozemaster Pro subscribers get access to advanced features and stats - but everything you need to learn fast is free and always will be. <a href="/web/20231107155806/https://www.clozemaster.com/sign-up">Get started.</a> </p> </div> </div> </div> </div> <div class="languages"> <div class="container"> <div class="row"> <div class="col-xs-12 text-center"> <h2>What language do you want to learn?</h2> <div class="language"> <a title="Learn Afrikaans" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-afrikaans-online"><span class="sprite flag_48_ZA"></span> </a></div> <div class="language"> <a title="Learn Shqip (Albanian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-albanian-online"><span class="sprite flag_48_AL"></span> </a></div> <div class="language"> <a title="Learn دارجة (Algerian Arabic)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-algerian-arabic-online"><span class="sprite flag_48_DZ"></span> </a></div> <div class="language"> <a title="Learn አማርኛ (Amharic)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-amharic-online"><span class="sprite flag_48_ET"></span> </a></div> <div class="language"> <a title="Learn العربية (Arabic)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-arabic-online"><span class="sprite flag_48_EG"></span> </a></div> <div class="language"> <a title="Learn Հայերեն (Armenian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-armenian-online"><span class="sprite flag_48_AM"></span> </a></div> <div class="language"> <a title="Learn Azərbaycanca (Azerbaijani)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-azerbaijani-online"><span class="sprite flag_48_AZ"></span> </a></div> <div class="language"> <a title="Learn Euskara (Basque)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-basque-online"><span class="sprite flag_48_ES-PV"></span> </a></div> <div class="language"> <a title="Learn Беларуская (Belarusian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-belarusian-online"><span class="sprite flag_48_BY"></span> </a></div> <div class="language"> <a title="Learn বাংলা (Bengali)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-bengali-online"><span class="sprite flag_48_BD"></span> </a></div> <div class="language"> <a title="Learn Brezhoneg (Breton)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-breton-online"><span class="sprite flag_48_FR-E"></span> </a></div> <div class="language"> <a title="Learn Български (Bulgarian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-bulgarian-online"><span class="sprite flag_48_BG"></span> </a></div> <div class="language"> <a title="Learn 廣東話 (Cantonese)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-cantonese-online"><span class="sprite flag_48_HK"></span> </a></div> <div class="language"> <a title="Learn Català (Catalan)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-catalan-online"><span class="sprite flag_48_ES-CT"></span> </a></div> <div class="language"> <a title="Learn Kernewek (Cornish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-cornish-online"><span class="sprite flag_48_KW"></span> </a></div> <div class="language"> <a title="Learn Hrvatski (Croatian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-croatian-online"><span class="sprite flag_48_HR"></span> </a></div> <div class="language"> <a title="Learn Čeština (Czech)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-czech-online"><span class="sprite flag_48_CZ"></span> </a></div> <div class="language"> <a title="Learn Dansk (Danish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-danish-online"><span class="sprite flag_48_DK"></span> </a></div> <div class="language"> <a title="Learn Nederlands (Dutch)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-dutch-online"><span class="sprite flag_48_NL"></span> </a></div> <div class="language"> <a title="Learn English" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-english-online"><span class="sprite flag_48_US"></span> </a></div> <div class="language"> <a title="Learn Esperanto" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-esperanto-online"><span class="sprite flag_48_EO"></span> </a></div> <div class="language"> <a title="Learn Eesti (Estonian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-estonian-online"><span class="sprite flag_48_EE"></span> </a></div> <div class="language"> <a title="Learn Suomi (Finnish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-finnish-online"><span class="sprite flag_48_FI"></span> </a></div> <div class="language"> <a title="Learn Français (French)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-french-online"><span class="sprite flag_48_FR"></span> </a></div> <div class="language"> <a title="Learn Galego (Galician)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-galician-online"><span class="sprite flag_48_ES-GA"></span> </a></div> <div class="language"> <a title="Learn ქართული (Georgian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-georgian-online"><span class="sprite flag_48_GE"></span> </a></div> <div class="language"> <a title="Learn Deutsch (German)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-german-online"><span class="sprite flag_48_DE"></span> </a></div> <div class="language"> <a title="Learn Ελληνικά (Greek)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-greek-online"><span class="sprite flag_48_GR"></span> </a></div> <div class="language"> <a title="Learn Avañe'ẽ (Guarani)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-guarani-online"><span class="sprite flag_48_PY"></span> </a></div> <div class="language"> <a title="Learn עברית (Hebrew)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-hebrew-online"><span class="sprite flag_48_IL"></span> </a></div> <div class="language"> <a title="Learn हिन्दी (Hindi)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-hindi-online"><span class="sprite flag_48_IN"></span> </a></div> <div class="language"> <a title="Learn Magyar (Hungarian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-hungarian-online"><span class="sprite flag_48_HU"></span> </a></div> <div class="language"> <a title="Learn Íslenska (Icelandic)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-icelandic-online"><span class="sprite flag_48_IS"></span> </a></div> <div class="language"> <a title="Learn Bahasa Indonesia (Indonesian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-indonesian-online"><span class="sprite flag_48_ID"></span> </a></div> <div class="language"> <a title="Learn Interlingue" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-interlingue-online"><span class="sprite flag_48_ILE"></span> </a></div> <div class="language"> <a title="Learn Gaeilge (Irish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-irish-online"><span class="sprite flag_48_IE"></span> </a></div> <div class="language"> <a title="Learn Italiano (Italian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-italian-online"><span class="sprite flag_48_IT"></span> </a></div> <div class="language"> <a title="Learn 日本語 (Japanese)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-japanese-online"><span class="sprite flag_48_JP"></span> </a></div> <div class="language"> <a title="Learn Қазақша (Kazakh)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-kazakh-online"><span class="sprite flag_48_KZ"></span> </a></div> <div class="language"> <a title="Learn 한국어 (Korean)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-korean-online"><span class="sprite flag_48_KR"></span> </a></div> <div class="language"> <a title="Learn Latina (Latin)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-latin-online"><span class="sprite flag_48_SPQR"></span> </a></div> <div class="language"> <a title="Learn Latviešu (Latvian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-latvian-online"><span class="sprite flag_48_LV"></span> </a></div> <div class="language"> <a title="Learn Lietuvių (Lithuanian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-lithuanian-online"><span class="sprite flag_48_LT"></span> </a></div> <div class="language"> <a title="Learn La .lojban. (Lojban)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-lojban-online"><span class="sprite flag_48_JBO"></span> </a></div> <div class="language"> <a title="Learn Македонски (Macedonian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-macedonian-online"><span class="sprite flag_48_MK"></span> </a></div> <div class="language"> <a title="Learn 中文 (Mandarin Chinese)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-mandarin-chinese-online"><span class="sprite flag_48_CN"></span> </a></div> <div class="language"> <a title="Learn 中文 (Traditional) (Mandarin Chinese Traditional)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-mandarin-chinese-traditional-online"><span class="sprite flag_48_CN"></span> </a></div> <div class="language"> <a title="Learn Māori (Maori)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-maori-online"><span class="sprite flag_48_MAORI"></span> </a></div> <div class="language"> <a title="Learn Монгол хэл (Mongolian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-mongolian-online"><span class="sprite flag_48_MN"></span> </a></div> <div class="language"> <a title="Learn Nahuatl" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-nahuatl-online"><span class="sprite flag_48_NAH"></span> </a></div> <div class="language"> <a title="Learn Nordfriisk (North Frisian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-north-frisian-online"><span class="sprite flag_48_FRR"></span> </a></div> <div class="language"> <a title="Learn Norsk bokmål (Norwegian Bokmål)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-norwegian-bokmal-online"><span class="sprite flag_48_NO"></span> </a></div> <div class="language"> <a title="Learn Occitan" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-occitan-online"><span class="sprite flag_48_OC"></span> </a></div> <div class="language"> <a title="Learn فارسی (Persian Farsi)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-persian-farsi-online"><span class="sprite flag_48_IR"></span> </a></div> <div class="language"> <a title="Learn Piemontèis (Piedmontese)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-piedmontese-online"><span class="sprite flag_48_PMS"></span> </a></div> <div class="language"> <a title="Learn Polski (Polish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-polish-online"><span class="sprite flag_48_PL"></span> </a></div> <div class="language"> <a title="Learn Português (Portuguese)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-portuguese-online"><span class="sprite flag_48_BR"></span> </a></div> <div class="language"> <a title="Learn Română (Romanian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-romanian-online"><span class="sprite flag_48_RO"></span> </a></div> <div class="language"> <a title="Learn Русский (Russian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-russian-online"><span class="sprite flag_48_RU"></span> </a></div> <div class="language"> <a title="Learn Gàidhlig (Scottish Gaelic)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-scottish-gaelic-online"><span class="sprite flag_48_GLA"></span> </a></div> <div class="language"> <a title="Learn Srpski (Serbian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-serbian-online"><span class="sprite flag_48_RS"></span> </a></div> <div class="language"> <a title="Learn Slovenčina (Slovak)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-slovak-online"><span class="sprite flag_48_SK"></span> </a></div> <div class="language"> <a title="Learn Slovenščina (Slovenian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-slovenian-online"><span class="sprite flag_48_SI"></span> </a></div> <div class="language"> <a title="Learn Español (Spanish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-spanish-online"><span class="sprite flag_48_ES"></span> </a></div> <div class="language"> <a title="Learn Swahili" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-swahili-online"><span class="sprite flag_48_SW"></span> </a></div> <div class="language"> <a title="Learn Svenska (Swedish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-swedish-online"><span class="sprite flag_48_SE"></span> </a></div> <div class="language"> <a title="Learn Tagalog" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-tagalog-online"><span class="sprite flag_48_PH"></span> </a></div> <div class="language"> <a title="Learn ภาษาไทย (Thai)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-thai-online"><span class="sprite flag_48_TH"></span> </a></div> <div class="language"> <a title="Learn Toki Pona" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-toki-pona-online"><span class="sprite flag_48_TOKI"></span> </a></div> <div class="language"> <a title="Learn Türkçe (Turkish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-turkish-online"><span class="sprite flag_48_TR"></span> </a></div> <div class="language"> <a title="Learn Українська (Ukrainian)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-ukrainian-online"><span class="sprite flag_48_UA"></span> </a></div> <div class="language"> <a title="Learn Tiếng Việt (Vietnamese)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-vietnamese-online"><span class="sprite flag_48_VN"></span> </a></div> <div class="language"> <a title="Learn Cymraeg (Welsh)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-welsh-online"><span class="sprite flag_48_GB-WLS"></span> </a></div> <div class="language"> <a title="Learn ייִדיש (Yiddish)" data-toggle="tooltip" href="/web/20231107155806/https://www.clozemaster.com/languages/learn-yiddish-online"><span class="sprite flag_48_YI"></span> </a></div> <div style="margin-top: 10px"> <a class="btn btn-lg joystix btn-success" style="font-size: 3rem; width: 250px" href="/web/20231107155806/https://www.clozemaster.com/languages">Play <span class="glyphicon glyphicon-chevron-right"></span> </a></div> </div> </div> </div> </div> <div class="additional-features"> <div class="on-the-go"> <div class="display"> <img class="android" src="https://web.archive.org/web/20231107155806im_/https://d1ettzkkbejkw8.cloudfront.net/images/android-screenshot.png"/> <img class="iphone" src="https://web.archive.org/web/20231107155806im_/https://d1ettzkkbejkw8.cloudfront.net/images/iphone-screenshot.png"/> </div> <div class="description"> <div class="content"> <h3> Learn on the go. </h3> <p>Use your downtime to level up.</p> <a href="https://web.archive.org/web/20231107155806/https://play.google.com/store/apps/details?id=com.clozemaster.v2"><img alt="Get it on Google Play" height="60" src="/web/20231107155806im_/https://www.clozemaster.com/assets/google-play/en_badge_web_generic-cc1e2f356688df391123d8173d2705e7a5cc1fa2f070c0744f7ba4f185567d6c.png"/></a> <a href="https://web.archive.org/web/20231107155806/https://itunes.apple.com/us/app/clozemaster/id1149199075?ls=1&mt=8"><img src="/web/20231107155806im_/https://www.clozemaster.com/assets/Download_on_the_App_Store_Badge_US-UK_135x40-25178aeef6eb6b83b96f5f2d004eda3bffbb37122de64afbaef7107b384a4132.svg"/></a> </div> </div> </div> </div> <div class="clearfix"></div> <div class="on-the-web"> <div> <span class="joystix">Clozemaster</span> on the web </div> <div> <a target="_blank" href="https://web.archive.org/web/20231107155806/https://www.instagram.com/clozemaster/"><i class="fa fa-instagram" aria-hidden="true"></i> </a><a target="_blank" href="https://web.archive.org/web/20231107155806/https://twitter.com/clozemaster"><i class="fa fa-twitter" aria-hidden="true"></i> </a><a target="_blank" href="https://web.archive.org/web/20231107155806/https://www.facebook.com/clozemaster"><i class="fa fa-facebook" aria-hidden="true"></i> </a><a target="_blank" href="https://web.archive.org/web/20231107155806/https://www.reddit.com/r/clozemaster/"><i class="fa fa-reddit-alien" aria-hidden="true"></i> </a><a target="_blank" href="https://web.archive.org/web/20231107155806/https://medium.com/@clozemaster"><i class="fa fa-medium" aria-hidden="true"></i> </a></div> </div> <div class="bottom-action"> <h2>Ready to take your language learning to the next level?</h2> <div class="actions"> <a class="btn btn-success btn-lg joystix" href="/web/20231107155806/https://www.clozemaster.com/sign-up">Sign Up</a> <a class="btn btn-success btn-lg joystix" href="/web/20231107155806/https://www.clozemaster.com/languages">Play <span class="glyphicon glyphicon-chevron-right"></span> </a></div> </div> <div id="footer"> <div class="container"> <div class="row"> <div class="col-xs-12"> <div class="pull-right"> <a href="/web/20231107155806/https://www.clozemaster.com/contact">Contact</a> | <a href="/web/20231107155806/https://www.clozemaster.com/terms">Terms</a> | <a href="/web/20231107155806/https://www.clozemaster.com/privacy">Privacy</a> </div> <strong>© 2023 Language Innovation LLC</strong> </div> </div> </div> </div> </div> </div> </div> </div> </div> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//web.archive.org/web/20231107155806/https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-75014418-1', 'auto'); ga('send', 'pageview'); </script> <!-- Google tag (gtag.js) --> <script async src="https://web.archive.org/web/20231107155806js_/https://www.googletagmanager.com/gtag/js?id="></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'TEST'); </script> <script src="/web/20231107155806js_/https://www.clozemaster.com/assets/application-07013749d8267afb7f4adac9536c0680f4d723aceb2813c261edc6a10387ca2c.js"></script> <script src="/web/20231107155806js_/https://www.clozemaster.com/packs/js/application-29b9ca7d257158f5aa23.js"></script> <script> $(function() { $('.notification').delay(5000).slideUp(); $('#scroll-down').on('click', function() { $("html, body").animate({ scrollTop: $('#features').offset().top }); }); }); </script> </body> </html> <!-- FILE ARCHIVED ON 15:58:06 Nov 07, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 12:45:38 Feb 21, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.665 exclusion.robots: 0.032 exclusion.robots.policy: 0.021 esindex: 0.014 cdx.remote: 14.702 LoadShardBlock: 121.633 (3) PetaboxLoader3.datanode: 128.849 (4) PetaboxLoader3.resolve: 246.717 (2) load_resource: 262.503 -->