diff --git a/package.json b/package.json index 5c9189cfe..00dc6046a 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "node-noop": "^1.0.0", "node-sass": "^4.7.2", "nsp": "^3.2.1", - "optimize-css-assets-webpack-plugin": "^4.0.2", + "optimize-css-assets-webpack-plugin": "^3.2.0", "phantomjs-prebuilt": "^2.1.16", "postcss-loader": "^2.0.9", "postcss-sass": "^0.3.0", diff --git a/src/i18n/bn-IN.properties b/src/i18n/bn-IN.properties index faa80ea0e..9903d700d 100644 --- a/src/i18n/bn-IN.properties +++ b/src/i18n/bn-IN.properties @@ -108,6 +108,10 @@ off=বন্ধ media_audio=অডিও # Label for alternate audio tracks in media player track=ট্র্যাক +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/da-DK.properties b/src/i18n/da-DK.properties index e951e1cf2..c6295188f 100644 --- a/src/i18n/da-DK.properties +++ b/src/i18n/da-DK.properties @@ -108,6 +108,10 @@ off=Fra media_audio=Lyd # Label for alternate audio tracks in media player track=Spor +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/de-DE.properties b/src/i18n/de-DE.properties index 16097d567..9273f6488 100644 --- a/src/i18n/de-DE.properties +++ b/src/i18n/de-DE.properties @@ -108,6 +108,10 @@ off=Aus media_audio=Audio # Label for alternate audio tracks in media player track=Titel +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/en-AU.properties b/src/i18n/en-AU.properties index 064a02e0b..94c3499c9 100644 --- a/src/i18n/en-AU.properties +++ b/src/i18n/en-AU.properties @@ -108,6 +108,10 @@ off=Off media_audio=Audio # Label for alternate audio tracks in media player track=Track +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/en-CA.properties b/src/i18n/en-CA.properties index c01979c45..dc123301c 100644 --- a/src/i18n/en-CA.properties +++ b/src/i18n/en-CA.properties @@ -108,6 +108,10 @@ off=Off media_audio=Audio # Label for alternate audio tracks in media player track=Track +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/en-GB.properties b/src/i18n/en-GB.properties index 064a02e0b..94c3499c9 100644 --- a/src/i18n/en-GB.properties +++ b/src/i18n/en-GB.properties @@ -108,6 +108,10 @@ off=Off media_audio=Audio # Label for alternate audio tracks in media player track=Track +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/en-US.properties b/src/i18n/en-US.properties index c01979c45..dc123301c 100644 --- a/src/i18n/en-US.properties +++ b/src/i18n/en-US.properties @@ -108,6 +108,10 @@ off=Off media_audio=Audio # Label for alternate audio tracks in media player track=Track +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/en-x-pseudo.properties b/src/i18n/en-x-pseudo.properties index 97095e731..b6b1ddaa1 100644 --- a/src/i18n/en-x-pseudo.properties +++ b/src/i18n/en-x-pseudo.properties @@ -1,266 +1,270 @@ # Button tooltip for rotating a preview to the left -rotate_left=⟦萬萬萬 Яоťāŧέ ĺęƒť 國國國⟧ +rotate_left=⟦萬萬萬 Γōţąťę ľěƒŧ 國國國⟧ # Button tooltip for zooming into a preview -zoom_in=⟦萬萬 Źòőm ϊή 國國⟧ +zoom_in=⟦萬萬 Źóőm īη 國國⟧ # Button tooltip for zooming out of a preview -zoom_out=⟦萬萬 Źοóm øŭτ 國國⟧ +zoom_out=⟦萬萬 Żόοm òūţ 國國⟧ # Button tooltip for entering a full screen preview -enter_fullscreen=⟦萬萬萬萬 Έйţėѓ ƒųĺļś¢ŗêěи 國國國國⟧ +enter_fullscreen=⟦萬萬萬萬 Έŋťěя ƒųĺĺŝĉяέëň 國國國國⟧ # Button tooltip for exiting a full screen preview -exit_fullscreen=⟦萬萬萬萬 Ё×ίτ ƒũļļśċřéеņ 國國國國⟧ +exit_fullscreen=⟦萬萬萬萬 Єхįτ ƒũľĺş¢řέёл 國國國國⟧ # Button tooltip for going to the previous page in a preview -previous_page=⟦萬萬萬 Pґενįóúś Ραĝè 國國國⟧ +previous_page=⟦萬萬萬 Přēνíøцş Ρâĝє 國國國⟧ # Input tooltip for navigating to a specific page in a preview -enter_page_num=⟦萬萬萬萬萬萬萬 Ċĺϊ¢к ţσ ėňŧêŕ Ρãğè πúmвéя 國國國國國國國⟧ +enter_page_num=⟦萬萬萬萬萬萬萬 Ćĺϊćκ ťŏ ěʼnţєґ Ρàġє ņūmьéŗ 國國國國國國國⟧ # Button tooltip for navigating to the next page in a preview -next_page=⟦萬萬 Νèхŧ Ράĝè 國國⟧ +next_page=⟦萬萬 Ñе×τ Ρǻġê 國國⟧ # Button tooltip for downloading -download=⟦萬萬 Ďōώńļøåď 國國⟧ +download=⟦萬萬 Ďоώлļοαď 國國⟧ # Button tooltip for printing -print=⟦萬 Pŕĩиţ 國⟧ +print=⟦萬 Pяіиŧ 國⟧ # Notification shown over content when using native print instead of print button -print_notification=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Pļеàşє Ρгęşş ţĥè Ρŗìлţ вùţţόņ ťŏ ğëť ą Ρѓϊņτąвļε νєřśίőй óƒ ťħіś ďοčúmęŋτ. 國國國國國國國國國國國國國國國國國國國國國國⟧ +print_notification=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Pĺέąѕέ Ρгëѕś ŧħĕ Ρгīńť ьùŧťσи ţŏ ĝέŧ à Ρŗϊпťǻвļе νεřśιōи οƒ ŧніş ďôсúměŋţ. 國國國國國國國國國國國國國國國國國國國國國國⟧ # Message shown when printable version of the file is loading -print_loading=⟦萬萬萬萬萬萬 PяèΡäґìήġ ŧо Ρřĩʼnţ... 國國國國國國⟧ +print_loading=⟦萬萬萬萬萬萬 PяěΡάгîņġ ţσ Ρяìňţ... 國國國國國國⟧ # Message shown when print is ready -print_ready=⟦萬萬萬萬 Γёâďў ťó Ρгíήţ. 國國國國⟧ +print_ready=⟦萬萬萬萬 ΓεαďУ τō Ρгĭйţ. 國國國國⟧ # Accessible text for right navigation arrow that navigates user to previous file in collection -previous_file=⟦萬萬萬 Pŕёνίоцş ƒϊļе 國國國⟧ +previous_file=⟦萬萬萬 Pяêνîöûŝ ƒιĺέ 國國國⟧ # Accessible text for right navigation arrow that navigates user to next file in collection -next_file=⟦萬萬 Ñё×ť ƒίĺë 國國⟧ +next_file=⟦萬萬 Ňĕ×ŧ ƒìĺė 國國⟧ # Text shown while preview is loading -loading_preview=⟦萬萬萬萬萬 Ŀσăďîпğ Pгêνìĕш... 國國國國國⟧ +loading_preview=⟦萬萬萬萬萬 Ļóάďīηġ Pѓενîëω... 國國國國國⟧ # Text for download button shown while preview is loading -download_file=⟦萬萬萬 Ðőшйľôáď ₣ίļέ 國國國⟧ +download_file=⟦萬萬萬 Ďöωņļóąď ₣ìľё 國國國⟧ # Text shown when a text file has been truncated due to size limits. -text_truncated=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ţнїş ƒïļё ħǻş ьеëи ťяůņсăτеď ďüę ťõ ѕіżè ĺïmίţŝ. Pĺèāŝё ďōŵήļοäď ŧõ νїєŵ ţнê шĥόļē ƒїľè. 國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ +text_truncated=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŧħîş ƒīĺê нäѕ ьēéŋ ţŗúňčāŧéď ďμę ŧό şîżè ļĭmįτŝ. Pľёáśè ďóẃńĺòàď τσ νìεŵ τħë ẃĥσĺé ƒįļέ. 國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ # Error messages # Default preview error message -error_generic=⟦萬萬萬萬萬萬萬萬萬萬萬 Ẃέ'ґе ѕοґґÿ, ťнė Ρřęνíèẃ ďĭďň'τ ļöãď. 國國國國國國國國國國國⟧ +error_generic=⟦萬萬萬萬萬萬萬萬萬萬萬 Ŵě'řê ѕōяґγ, τħë Ρгēνĩėш ďīďή'τ ļοáď. 國國國國國國國國國國國⟧ # Default preview error message -error_unsupported=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẁё'řę śогŕŷ, ţħè Ρřêνіēщ ďįďη'ť ĺòãď. {1} ƒìľēŝ äґé ňōŧ ĉüгřéńτľỳ ŝüΡΡσґτêď. 國國國國國國國國國國國國國國國國國國國國國國⟧ +error_unsupported=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃё'ґē ѕöŗŕγ, τħę Ρŗеνĩēŵ ďĩďл'τ ĺōăď. {1} ƒίľėś ǻřе ʼnóτ çцŗѓėŋţľў ѕцΡΡõѓŧėď. 國國國國國國國國國國國國國國國國國國國國國國⟧ # Account doesn't have a sufficient tariff to preview the requested file type -error_account=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Щέ'ŕе śòřŗў, Уøùя ǻçćõűηť ίŝ µňáьľέ ťò Ρгένϊещ ŧнįŝ ƒîļέ ťўΡе. 國國國國國國國國國國國國國國國國國國⟧ +error_account=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃě'ŕę ŝøгřÿ, ýοųŕ α¢čøūŋţ їś ūňάвľέ ŧό Ρѓëνįêẁ ťĥïş ƒīļé ţўΡě. 國國國國國國國國國國國國國國國國國國⟧ # No permissions preview error message -error_permissions=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŵè'řέ şοягў, Уōц ďøπ'ţ ħανĕ Ρеŕmїѕşīőй ţø Ρŗένіěщ ŧĥίѕ ƒīľε. 國國國國國國國國國國國國國國國國國⟧ +error_permissions=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Шë'ŕε śôřŗỳ, ŷοů ďοи'ť ħåνë Ρеŗmìŝśіõń ŧö Ρŕενīęщ ŧĥϊş ƒïĺę. 國國國國國國國國國國國國國國國國國⟧ # Preview refresh error message suggesting refreshing the page as a possible fix -error_refresh=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃе'гε śŏřѓУ, ťħё Ρŕěνієш ďíďп'τ ļōäď. Pļєâѕĕ яèƒřєѕħ ťħé Ρąğε. 國國國國國國國國國國國國國國國國國國⟧ +error_refresh=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Шė'ŕё ŝŏягÿ, ťħě Ρгένїĕŵ ďìďй'ţ ļόäď. Pļєąśê ґéƒгëśĥ τħé Ρăĝě. 國國國國國國國國國國國國國國國國國國⟧ # Preview rate limit error suggesting waiting a few minutes to avoid rate limit -error_rate_limit=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŵé'ŗε ŝόŗŕў, ţħĕ Ρřéνïēώ ďїďи'ŧ ļôąď ьĕĉâūŝē ŷõúґ ŗĕqцέśτ шǻś ŕāŧё ļĩmϊţèď. Pĺêäśе ŵãīť ă ƒєω mīπūťεѕ άʼnď ŧяУ ąğåϊή. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ +error_rate_limit=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃĕ'гě śόґгÿ, ţħê Ρŗèνîёẁ ďїďи'ť ĺοäď ве¢äüŝë ŷőμґ ґēqµēşŧ шăş гáťέ ľīmîťēď. Pľέãśë шâіť ą ƒєώ mîņųţĕş âйď ţґў ǻġãïη. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ # Preview re-upload error message suggesting re-uploading the file or contacting support as a possible fix -error_reupload=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẁě'гĕ ѕσґґÿ, τĥе Ρŗένïèщ ďіďη'τ ļøąď. Pľеάŝε ŗĕ-ũΡľøâď ţнę ƒίļē σґ ĉσŋτáсţ Бøх śűΡΡőгţ. 國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ +error_reupload=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃè'ѓе śõяŗý, ŧĥε Ρгеνιêŵ ďįďń'ŧ ļóąď. Pľèάѕë ѓê-ųΡļŏαď ťнε ƒįľĕ óґ ċŏήţā¢ť ßø× şцΡΡŏѓť. 國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when the user's browser doesn't support previews of this file type -error_browser_unsupported=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Щє'ѓε ѕöŗяý, ŷòūŕ вяοẃѕēř ďõēśп'τ ѕųΡΡогτ Ρŕενϊέώ ƒòŕ {1}. 國國國國國國國國國國國國國國國國國⟧ +error_browser_unsupported=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Щё'ŕе śôŕґỳ, Уοűŕ ьřøẁŝέг ďőєśň'τ śũΡΡŏѓť Ρгêνĩēŵ ƒōґ {1}. 國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when document loading fails (most likely due to password or watermark) -error_document=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃε'ѓе śσґяÿ, ťĥέ Ρŗèνіεẁ ďįďη'ŧ ĺõäď. Τĥϊѕ ďοçũmęńť māỳ вē Ρѓôŧėĉţèď. 國國國國國國國國國國國國國國國國國國國國⟧ +error_document=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ще'řë ѕőřгУ, ťнę Ρřêνïéώ ďіďπ'ť ľоãď. Ťĥįѕ ďοĉùmėʼnť mάŷ вε Ρřοτěčŧĕď. 國國國國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when the document is password protected -error_password_protected=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Шë'ґё ŝöřŗў ťħë Ρґëνïεŵ ďїďņ'ť ľøαď. Ťħíŝ ďσćùmêņτ ĩş Ρгöτёсţёď. 國國國國國國國國國國國國國國國國國國國⟧ +error_password_protected=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŵё'řę śõгѓỳ ťħê Ρřĕνĭёщ ďïďʼn'ť ļōăď. Ťнìѕ ďōçũmèʼnţ įŝ Ρŗøτéсτèď. 國國國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when conversion was unable to process the file at the given time. -error_try_again_later=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŵе'ґе ŝσŕґУ ŧħё Ρяęνιěщ ďίďņ'ŧ ľōãď. Pĺέáŝέ τŕў åğǻĩŋ ľąŧέŕ. 國國國國國國國國國國國國國國國國國⟧ +error_try_again_later=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃέ'гę şσŗŕỳ τĥé Ρгèνĩéώ ďιďň'ŧ ľŏàď. Pļèàŝē ţŗỳ áğǻĩи ļäτěя. 國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when conversion failed due to file contents -error_bad_file=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Шè'ŕĕ śöѓяў ŧĥє Ρяĕνįέω ďіďл'ť ľöâď. Ŧнíŝ ƒįĺé ¢ōŭļď ŋōť вę ĉōпνėяťеď. 國國國國國國國國國國國國國國國國國國國國⟧ +error_bad_file=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẁë'ŕé ŝöŕяÿ ťĥë Ρŕėνîėẃ ďĩďи'ť ĺόαď. Ťħїś ƒïĺë čőųļď ʼnŏţ ьê ĉôʼnνêгţêď. 國國國國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when the file cannot be downloaded -error_not_downloadable=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 ŌõΡŝ! İτ ļόоĸŝ ĺįκέ ѕŏmеŧніήĝ ĩş ώŗόлĝ щίŧħ ťнιş ƒįĺë. Ẁё αΡοĺôġĩźε ƒŏг τĥě îňċőπνєйīěŋçέ āиď ѓėčòmměиď ţħãť Уоц úΡľσåď ą лεŵ νĕѓśĩôл ŏƒ ťĥīş ƒīĺе ōг ŕоļĺ вāčк ţø á Ρгēνìőμŝ νĕѓśīóл. Pľέåśê ¢όпťàćť ûѕ ƒøґ mòгė ďеτâïĺş. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ +error_not_downloadable=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 ΘőΡś! Ìţ ĺóőĸś ĺϊке ŝőméţнīηġ ïş щŕōиġ шίτħ ŧнїś ƒïľě. Ẃε âΡσĺσĝîżé ƒόѓ ţнè ïлçôņνèиĩėʼnçё ǻňď гεćσmmėňď τĥăτ γσú ūΡļøàď á лéẁ νеґśïøπ öƒ τĥίś ƒíļē õґ ŕσľļ ьăćĸ τõ ą Ρяęνĭõμŝ νĕŗŝίóň. Pĺеάѕè ćόńţą¢ţ úѕ ƒøґ mōѓė ďēŧäìĺś. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ # Preview error message shown when flash is not enabled on their browser -error_flash_not_enabled=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Шε'ѓę şôŕґÿ, ţнë Ρгêνîėẁ ďíďη'ť ľöǻď вëçăûśє ₣ļàѕħ ιś йõť êʼnăвľéď όй ŷöūř вřóẁśĕг. Ίƒ Ρõşşίьļè, Ρĺёǻŝē ëйåьľé ₣ļāŝħ ãńď ŗέƒŗєѕĥ τħē Ρâğę. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ +error_flash_not_enabled=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẁέ'řė ŝοґґŷ, τħē Ρґèνįĕẃ ďίďп'ţ ĺöåď вēĉäűśё ₣ļǻśħ ìѕ пöť êηάьľêď оņ γоµѓ вŗøщşеґ. Ĭƒ Ρоśѕϊвĺе, Ρļёàѕè ęηαьĺέ ₣ľàşн äŋď гēƒŕĕŝħ ťнė Ρăĝє. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ # Media Preview # Label for autoplay in media player -media_autoplay=⟦萬萬 ÄůţõΡĺãý 國國⟧ +media_autoplay=⟦萬萬 ΑůτøΡĺαУ 國國⟧ # Label for disabled autoplay in media player -media_autoplay_disabled=⟦萬萬 Ďίşāьļέď 國國⟧ +media_autoplay_disabled=⟦萬萬 Ďīşåвļęď 國國⟧ # Label for enabled autoplay in media player -media_autoplay_enabled=⟦萬萬 Ĕʼnăьľëď 國國⟧ +media_autoplay_enabled=⟦萬萬 Еʼnàвĺєď 國國⟧ # Label for changing speed in media player -media_speed=⟦萬 ЅΡëĕď 國⟧ +media_speed=⟦萬 ŞΡĕèď 國⟧ # Label for normal speed in media player -media_speed_normal=⟦萬 Ńōřmàĺ 國⟧ +media_speed_normal=⟦萬 Ñόґmãļ 國⟧ # Label for changing quality in media player -media_quality=⟦萬萬 Qμąļіŧÿ 國國⟧ +media_quality=⟦萬萬 Qµáĺïŧỳ 國國⟧ # Label for automatic quality in media player -media_quality_auto=⟦萬 Āцťо 國⟧ +media_quality_auto=⟦萬 Άũŧσ 國⟧ # Label for volume slider in media player -media_volume_slider=⟦萬萬萬 Vôľцmе Ŝľĩďěя 國國國⟧ +media_volume_slider=⟦萬萬萬 Võĺμmë Ŝľїďеŗ 國國國⟧ # Label for time slider in media player -media_time_slider=⟦萬萬萬 Μéďĭā Ѕĺίďèř 國國國⟧ +media_time_slider=⟦萬萬萬 Мëďįą Ѕĺϊďёŗ 國國國⟧ # Label for Volume button in media player -media_mute=⟦萬 Μµŧё 國⟧ +media_mute=⟦萬 Μūŧé 國⟧ # Label for Volume button in media player -media_unmute=⟦萬 Ūńmůτė 國⟧ +media_unmute=⟦萬 Úпmùτé 國⟧ # Label for Play button in media player -media_play=⟦萬 PĺåУ 國⟧ +media_play=⟦萬 Pļàŷ 國⟧ # Label for Pause button in media player -media_pause=⟦萬 Päųŝė 國⟧ +media_pause=⟦萬 Păűşē 國⟧ # Label for Settings button in media player -media_settings=⟦萬萬 Ѕēţŧíňġś 國國⟧ +media_settings=⟦萬萬 Ŝêţťìńġş 國國⟧ # Label for subtitles/closed-captions in media player -media_subtitles_cc=⟦萬萬萬萬萬萬萬 Şüьτíτľėŝ/Ĉľσŝёď ĈαΡτїòńş 國國國國國國國⟧ +media_subtitles_cc=⟦萬萬萬萬萬萬萬 Ŝüвţîťľĕş/Ćļöѕεď ÇāΡŧιοпѕ 國國國國國國國⟧ # Used in ARIA label for volume -volume=⟦萬 Vóļŭmé 國⟧ +volume=⟦萬 Vőĺűmё 國⟧ # Used in ARIA label for timescrubber progress -of=⟦ ōƒ ⟧ +of=⟦ òƒ ⟧ # Label for subtitles in media player -subtitles=⟦萬萬 Ѕµьτīţĺєś 國國⟧ +subtitles=⟦萬萬 Śüьťíţļєş 國國⟧ # Label for turning off subtitles in media player off=⟦ Όƒƒ ⟧ # Label for audio tracks in media player -media_audio=⟦萬 Ăųďĭő 國⟧ +media_audio=⟦萬 Åūďíō 國⟧ # Label for alternate audio tracks in media player -track=⟦萬 Ŧяäćĸ 國⟧ +track=⟦萬 Τґαсκ 國⟧ +# Label for auto-generated captions +media_auto_generated_captions=⟦萬萬萬萬萬萬 Άцţό-Ġėńеяāτéď ČåΡŧĩопś 國國國國國國⟧ +# Label for auto-generated language choice +auto_generated=⟦萬萬萬萬 Àūŧó-Ġёлěяãţĕď 國國國國⟧ # 3D Preview # Button tooltip for showing/hiding the list of animation clips -box3d_animation_clips=⟦萬萬萬萬 Αпĭmãŧĭôʼn сļîΡś 國國國國⟧ +box3d_animation_clips=⟦萬萬萬萬 Āʼnīmâťіòŋ ĉļіΡѕ 國國國國⟧ # Button tooltip for resetting all user modified settings in the control bar and Settings panel, to their defaults. This includes render mode, rotation, camera position -box3d_reset=⟦萬 Ґēѕĕτ 國⟧ +box3d_reset=⟦萬 Γєŝеţ 國⟧ # Button tooltip for playing and pausing animations -box3d_toggle_animation=⟦萬萬萬萬萬 Pĺάÿ/Ρąũŝε άηїmąţįοй 國國國國國⟧ +box3d_toggle_animation=⟦萬萬萬萬萬 Pľǻў/Ρäųŝė ąήιmαţĭòń 國國國國國⟧ # Button tooltip for toggling VR display mode in any 3D preview -box3d_toggle_vr=⟦萬萬萬萬萬 Ŧõġĝĺέ VŖ ďįѕΡļâỳ 國國國國國⟧ +box3d_toggle_vr=⟦萬萬萬萬萬 Ŧόğġľę VΓ ďїѕΡļάУ 國國國國國⟧ # Settings -box3d_settings=⟦萬萬 Şëţŧιņğş 國國⟧ +box3d_settings=⟦萬萬 Ѕéτţíņġş 國國⟧ # Annotations # Placeholder text for create textarea in annotation dialog -annotation_add_comment_placeholder=⟦萬萬萬萬萬萬 Άďď ā ĉømmєπť ħεŗë... 國國國國國國⟧ +annotation_add_comment_placeholder=⟦萬萬萬萬萬萬 Αďď å ĉömmēήţ ĥéŗέ... 國國國國國國⟧ # Placeholder text for reply textarea in annotation dialog -annotation_reply_placeholder=⟦萬萬萬萬 Pōśτ à геΡľУ... 國國國國⟧ +annotation_reply_placeholder=⟦萬萬萬萬 Pōśτ ã řëΡľÿ... 國國國國⟧ # Text for finish annotation mode button -annotation_done=⟦萬 Ðōňę 國⟧ +annotation_done=⟦萬 Ďõηė 國⟧ # Text for close annotation mode button -annotation_close=⟦萬 Çĺôŝē 國⟧ +annotation_close=⟦萬 Ċĺŏŝè 國⟧ # Text for cancel annotation button -annotation_cancel=⟦萬 Çǻηċēļ 國⟧ +annotation_cancel=⟦萬 Ĉåпćêĺ 國⟧ # Text for save annotation button -annotation_save=⟦萬 Şäνё 國⟧ +annotation_save=⟦萬 Ѕáνė 國⟧ # Text for post annotation button -annotation_post=⟦萬 Pőѕť 國⟧ +annotation_post=⟦萬 Põşţ 國⟧ # Text for delete annotation button -annotation_delete=⟦萬 Ðēĺέτέ 國⟧ +annotation_delete=⟦萬 Ďέĺεťè 國⟧ # Text for delete annotation confirmation message -annotation_delete_confirmation_message=⟦萬萬萬萬萬萬 Ðέĺēŧĕ ŧħιş āйлōτåťĩõń? 國國國國國國⟧ +annotation_delete_confirmation_message=⟦萬萬萬萬萬萬 Ðёļéŧē ťĥīŝ άʼnпŏţáτïσŋ? 國國國國國國⟧ # Alternate text for profile picture -annotation_profile_alt=⟦萬 Åνâŧáŗ 國⟧ +annotation_profile_alt=⟦萬 Ąναŧăґ 國⟧ # Username for anonymous user -annotation_anonymous_user_name=⟦萬萬 Śōmê Űŝęґ 國國⟧ +annotation_anonymous_user_name=⟦萬萬 Ѕőmé Űŝèř 國國⟧ # Message that annotation is in the process of being posted -annotation_posting_message=⟦萬萬 Pοѕţīŋġ... 國國⟧ +annotation_posting_message=⟦萬萬 Pøśŧįηġ... 國國⟧ # Accessibilty message for button that toggles point annotation mode -annotation_point_toggle=⟦萬萬萬萬萬萬 Pσīηţ ǻήņőŧαŧĩóп møďě 國國國國國國⟧ +annotation_point_toggle=⟦萬萬萬萬萬萬 Póîπť åлņöταťϊöņ möďé 國國國國國國⟧ # Accessibilty message for button that toggles drawing annotation mode -annotation_draw_toggle=⟦萬萬萬萬萬萬 Ďґäẁìπĝ àŋйôŧåŧíοʼn móďε 國國國國國國⟧ +annotation_draw_toggle=⟦萬萬萬萬萬萬 Ďřåẃîиğ αņņŏţàţĩόń møďė 國國國國國國⟧ # Accessibilty text for button that adds and removes highlights on text -annotation_highlight_toggle=⟦萬萬萬萬 Ήīğĥĺίğĥţ ţёхτ 國國國國⟧ +annotation_highlight_toggle=⟦萬萬萬萬 Ħιğħľìğħτ ťęхτ 國國國國⟧ # Accessibilty text for button that adds comments to text highlights -annotation_highlight_comment=⟦萬萬萬萬萬萬萬萬萬 Àďď čømmεńţ ţô ĥïġĥĺïğнτêď ŧєхτ 國國國國國國國國國⟧ +annotation_highlight_comment=⟦萬萬萬萬萬萬萬萬萬 Àďď čоmmęйť τó нĩğħļіġħτέď τє×ŧ 國國國國國國國國國⟧ # Text for which user made the highlight annotation -annotation_who_highlighted=⟦萬萬萬萬 {1} ħîġĥľîğħŧėď 國國國國⟧ +annotation_who_highlighted=⟦萬萬萬萬 {1} ĥïĝħľîġĥťèď 國國國國⟧ # Text for which user made the drawn annotation -annotation_who_drew=⟦萬萬 {1} ďгéω 國國⟧ +annotation_who_drew=⟦萬萬 {1} ďґëẁ 國國⟧ # Accessibilty text for button that soft commits drawing -annotation_draw_save=⟦萬萬萬 Śáνе ďѓãẁίʼnġ 國國國⟧ +annotation_draw_save=⟦萬萬萬 Ѕãνе ďŕáшįŋĝ 國國國⟧ # Accessibilty text for button that soft deletes drawing -annotation_draw_delete=⟦萬萬萬萬 Ðēĺęτе ďгαώìйĝ 國國國國⟧ +annotation_draw_delete=⟦萬萬萬萬 Ďéļėţε ďґαщìŋğ 國國國國⟧ # Text for when annotations fail to load -annotations_load_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŵе'яě ѕóґŕÿ, äпйσŧăţϊойѕ ƒāíļέď τö ľøāď ƒòя ťĥîş ƒĭľē. 國國國國國國國國國國國國國國國國⟧ +annotations_load_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ше'гē ѕσгřý, ăйпôτāţιŏʼnŝ ƒάіľеď ŧσ ĺőăď ƒőř ŧĥîŝ ƒιĺë. 國國國國國國國國國國國國國國國國⟧ # Text for when the annotation can't be created -annotations_create_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃę'яê śöŗŗў, ťħě âŋйõťăŧιöπ çοùļď ńóŧ ьē ĉřêāťěď. 國國國國國國國國國國國國國國⟧ +annotations_create_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ẃе'ŕē śöŗŕγ, ŧħê âлńôţåŧīôň čòûĺď ʼnôτ ьè ćřєâτěď. 國國國國國國國國國國國國國國⟧ # Text for when the annotation can't be deleted -annotations_delete_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Щē'ŕё ѕöґґỳ, ţħέ άпņοţāŧιòй ¢ŏüĺď ņôť ьê ďέĺεŧěď. 國國國國國國國國國國國國國國⟧ +annotations_delete_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Шė'ŗē śøґяγ, ŧħε ǻпŋоτåτïŏи çōúļď лóŧ ве ďёĺëτèď. 國國國國國國國國國國國國國國⟧ # Text for when the authorization token is invalid -annotations_authorization_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ύòúŗ şêśŝĭоń ħáŝ ė×Ρīяëď. Pļёàşè гєƒгēѕн ţħε Ρăġë. 國國國國國國國國國國國國國國⟧ +annotations_authorization_error=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ýöůґ ŝеśѕĭόň ĥăş ėхΡїřëď. Pĺėàşě гêƒřеѕħ τĥé Ραġε. 國國國國國國國國國國國國國國⟧ # Notifications # Default text for notification button that dismisses notification -notification_button_default_text=⟦萬 ØкāУ 國⟧ +notification_button_default_text=⟦萬 Ôκáỳ 國⟧ # Notification message shown when user enters point annotation mode -notification_annotation_point_mode=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Çľíçĸ αйγώĥĕŗέ ťо áďď ά ċόmmęήţ ŧõ ťħέ ďőčŭmеήţ 國國國國國國國國國國國國國國⟧ +notification_annotation_point_mode=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Çľíćĸ αŋγώħеŕε ţō áďď å ćоmmĕйŧ ŧõ ţнё ďòċūmèńτ 國國國國國國國國國國國國國國⟧ # Notification message shown when user enters drawing annotation mode -notification_annotation_draw_mode=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Pґёśś ďоŵń ąņď ďгâġ ţнё Ρöїлťēŗ ŧо ďѓåω σπ ŧħĕ ďŏ¢űmëлţ 國國國國國國國國國國國國國國國國⟧ +notification_annotation_draw_mode=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Přέŝś ďòώη âŋď ďřäġ τĥę Ρõĩʼnťêŕ το ďŗάш õŋ ŧĥé ďőċµměпť 國國國國國國國國國國國國國國國國⟧ # Notification message shown when the user has a degraded preview experience due to blocked download hosts -notification_degraded_preview=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ìτ ľöőκş ĺίкë γöŭг ¢ōňиеĉťìóň ťŏ {1} ίş ьêīņğ ьĺоĉĸēď. Щε τĥιлĸ ŵє ĉǻń mǻке ƒіļё Ρŗèνίêωѕ ƒăşťêґ ƒŏŗ ŷόü. Ťŏ ďσ ťħàţ, Ρĺĕâѕě åśĸ γöūґ ņέţωòґķ αďmϊŋ το соиƒĩĝũяе ƒϊґéẃäļľ ѕĕττīņĝś śσ ťħåτ {1} îş яëαĉнåвĺє. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ +notification_degraded_preview=⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Íŧ ĺóοкѕ ĺĩķë ўôŭѓ ċóηпę¢ţĭòņ ŧŏ {1} îѕ вęĩлġ вĺōċĸеď. Ŵė ťĥíňĸ ŵę ĉãπ mãκë ƒϊļє Ρřèνìεώŝ ƒáѕţëг ƒőя ŷоű. Τó ďσ τħǻţ, Ρļêāśέ ąŝķ γōŭř пєτшŏŕķ ąďmįň ŧõ čοňƒіĝµŕе ƒĭяèώãļļ ѕĕŧťιńġѕ ѕö τĥäτ {1} įѕ ѓéåċĥäвļέ. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧ # Notification message shown when a file cannot be downloaded -notification_cannot_download=⟦萬萬萬萬萬萬萬萬萬萬 Śοŗŕý! Ýôũ ċāń'τ ďόŵπļøąď ŧнįş ƒįľé. 國國國國國國國國國國⟧ +notification_cannot_download=⟦萬萬萬萬萬萬萬萬萬萬 Śоѓґŷ! Υõμ čàή'ť ďòŵʼnĺōǻď ŧħīŝ ƒìļê. 國國國國國國國國國國⟧ # Link Text -link_contact_us=⟦萬萬 Čóиτãçť Ųś 國國⟧ +link_contact_us=⟦萬萬 Ĉöŋŧāĉτ Úѕ 國國⟧ # File Types # 360 degree video file type -360_videos=⟦萬萬萬萬萬 360-ďέĝŗêє νïďëōŝ 國國國國國⟧ +360_videos=⟦萬萬萬萬萬 360-ďêğŕėέ νïďêøş 國國國國國⟧ # 360 degree image file type -360_images=⟦萬萬萬萬萬 360-ďёġŗεę ímāğèŝ 國國國國國⟧ +360_images=⟦萬萬萬萬萬 360-ďεğŗêё іmâĝéş 國國國國國⟧ # 3-dimensional model file type -3d_models=⟦萬萬 3Ď môďεĺş 國國⟧ +3d_models=⟦萬萬 3Ď mοďεľѕ 國國⟧ # Languages -afrikaans=⟦萬萬 Ăƒгίķαąʼnş 國國⟧ -albanian=⟦萬萬 Αľвǻиįāʼn 國國⟧ -arabic=⟦萬 Áŗαьίĉ 國⟧ -armenian=⟦萬萬 Àгmεиïäň 國國⟧ -belarusian=⟦萬萬 βěĺãŕμѕїäη 國國⟧ -bengali=⟦萬萬 ßęńğąļї 國國⟧ -bosnian=⟦萬萬 Βŏѕпīãή 國國⟧ -bulgarian=⟦萬萬 ßùĺġάяϊâň 國國⟧ -burmese=⟦萬萬 Бŭяmеşę 國國⟧ -catalan=⟦萬萬 Ĉâťãļäη 國國⟧ -central_khmer=⟦萬萬萬 Ċεиţгâľ Ќĥmёŕ 國國國⟧ -chinese=⟦萬萬 Čнĭŋέşê 國國⟧ -croatian=⟦萬萬 Ċѓòăţîåи 國國⟧ -czech=⟦萬 Ĉźєčĥ 國⟧ -danish=⟦萬 Ðäŋĭѕн 國⟧ -dutch=⟦萬 ϵţçħ 國⟧ -english=⟦萬萬 Єηġľîśħ 國國⟧ -estonian=⟦萬萬 Σѕţőлĩαη 國國⟧ -filipino=⟦萬萬 ₣їĺìΡìŋó 國國⟧ -finnish=⟦萬萬 ₣ïņńιśħ 國國⟧ -french=⟦萬 ₣ŗęʼn¢н 國⟧ -galician=⟦萬萬 Ğåļïçїαй 國國⟧ -ganda=⟦萬 Ġāйďá 國⟧ -georgian=⟦萬萬 Ġęóяğїåň 國國⟧ -german=⟦萬 Ğĕѓmäη 國⟧ -haitian_creole=⟦萬萬萬萬 Ήáįťįáή Çѓėôļê 國國國國⟧ -hebrew=⟦萬 Ηēвѓеẃ 國⟧ -hindi=⟦萬 Ηιпďì 國⟧ -hmong=⟦萬 Ħmóńġ 國⟧ -hungarian=⟦萬萬 Ήùπĝāřìàŋ 國國⟧ -icelandic=⟦萬萬 Íçēļαπďíć 國國⟧ -indonesian=⟦萬萬 Ίňďοńёŝĭαи 國國⟧ -irish=⟦萬 Ìŗїѕĥ 國⟧ -italian=⟦萬萬 Іťąľįāň 國國⟧ -japanese=⟦萬萬 ĴāΡåńεśë 國國⟧ -kazakh=⟦萬 Κāżäķĥ 國⟧ -korean=⟦萬 Ķøяёάň 國⟧ -kurdish=⟦萬萬 Κüгďίśħ 國國⟧ -lao=⟦ Ľăö ⟧ -latvian=⟦萬萬 Ĺατνìåη 國國⟧ -lithuanian=⟦萬萬 Ļįτнūàπìαń 國國⟧ -luxembourgish=⟦萬萬萬 Ĺüхęmвоцґğįşн 國國國⟧ -malay_macrolanguage=⟦萬 МàľáУ 國⟧ -modern_greek_1453_=⟦萬 Ğгëěк 國⟧ -mongolian=⟦萬萬 Мóŋĝōĺïǻи 國國⟧ -norwegian=⟦萬萬 Ňοřώęğιáʼn 國國⟧ -persian=⟦萬萬 Pēřśϊǻи 國國⟧ -polish=⟦萬 Pσľιşĥ 國⟧ -portuguese=⟦萬萬 Pόŗţųğůēşέ 國國⟧ -romanian=⟦萬萬 Яόmâиīäņ 國國⟧ -russian=⟦萬萬 Ѓцŝѕìâʼn 國國⟧ -serbian=⟦萬萬 Şęгьîāπ 國國⟧ -sichuan_yi=⟦萬萬 Śíċħµâл Ŷî 國國⟧ -sicilian=⟦萬萬 Ŝîċĩľіäη 國國⟧ -slovak=⟦萬 Şľôναķ 國⟧ -slovenian=⟦萬萬 Śļóνėńĩãň 國國⟧ -somali=⟦萬 Śõmăĺì 國⟧ -spanish=⟦萬萬 ŚΡãŋíѕĥ 國國⟧ -swahili_macrolanguage=⟦萬萬 Ѕώãħϊľі 國國⟧ -swedish=⟦萬萬 Ŝώëďïşħ 國國⟧ -swiss_german=⟦萬萬萬 Śшĭşş Ġεґmáη 國國國⟧ -tagalog=⟦萬萬 Ťäġăļŏğ 國國⟧ -telugu=⟦萬 Τéĺµğù 國⟧ -thai=⟦萬 Τнάĭ 國⟧ -tibetan=⟦萬萬 Ŧïьеţäʼn 國國⟧ -turkish=⟦萬萬 Ţûřķĩşħ 國國⟧ -ukrainian=⟦萬萬 Џĸŕąĩήιáň 國國⟧ -uzbek=⟦萬 Űźвέк 國⟧ -vietnamese=⟦萬萬 Vĭëťπάmĕŝê 國國⟧ +afrikaans=⟦萬萬 ƒѓικàâиŝ 國國⟧ +albanian=⟦萬萬 Àľьαńϊάʼn 國國⟧ +arabic=⟦萬 Αґαвіċ 國⟧ +armenian=⟦萬萬 Àřmεлîâл 國國⟧ +belarusian=⟦萬萬 Бēļάѓũѕìąй 國國⟧ +bengali=⟦萬萬 βėйĝâĺі 國國⟧ +bosnian=⟦萬萬 ßōŝиĩâп 國國⟧ +bulgarian=⟦萬萬 Βûľğāŕîǻи 國國⟧ +burmese=⟦萬萬 Бůгmεşę 國國⟧ +catalan=⟦萬萬 Ċáťăľãŋ 國國⟧ +central_khmer=⟦萬萬萬 Ĉєňťŕäĺ Ķħmεґ 國國國⟧ +chinese=⟦萬萬 Çħĩйéśē 國國⟧ +croatian=⟦萬萬 Ĉґŏάťіåŋ 國國⟧ +czech=⟦萬 Ĉźε¢н 國⟧ +danish=⟦萬 Ďåпіśħ 國⟧ +dutch=⟦萬 Ðùŧçħ 國⟧ +english=⟦萬萬 Éņĝĺϊśн 國國⟧ +estonian=⟦萬萬 Êśŧőйĭαπ 國國⟧ +filipino=⟦萬萬 ₣ìľϊΡìήô 國國⟧ +finnish=⟦萬萬 ₣įήņįѕħ 國國⟧ +french=⟦萬 ₣ґєήçн 國⟧ +galician=⟦萬萬 Ğåľĭсìāʼn 國國⟧ +ganda=⟦萬 Ġάπďα 國⟧ +georgian=⟦萬萬 Ĝέòŕğîâй 國國⟧ +german=⟦萬 Ġęѓmăń 國⟧ +haitian_creole=⟦萬萬萬萬 Ĥâįťîáņ Çґêŏļē 國國國國⟧ +hebrew=⟦萬 Ηèвѓęш 國⟧ +hindi=⟦萬 Ĥïπďï 國⟧ +hmong=⟦萬 Ĥmσŋġ 國⟧ +hungarian=⟦萬萬 Ηůʼnğãгîáη 國國⟧ +icelandic=⟦萬萬 Îçéļàņďĩ¢ 國國⟧ +indonesian=⟦萬萬 Îиďòйēŝĩǻň 國國⟧ +irish=⟦萬 Îŕιŝħ 國⟧ +italian=⟦萬萬 Ίτãľįάи 國國⟧ +japanese=⟦萬萬 ĴåΡåŋèşē 國國⟧ +kazakh=⟦萬 Ќäźäĸĥ 國⟧ +korean=⟦萬 Ķöґĕάŋ 國⟧ +kurdish=⟦萬萬 Ķüяďϊŝħ 國國⟧ +lao=⟦ Ľàō ⟧ +latvian=⟦萬萬 Ĺáţνĭāņ 國國⟧ +lithuanian=⟦萬萬 Ĺīŧĥцăлíαη 國國⟧ +luxembourgish=⟦萬萬萬 Ŀù×еmвőùŗġĩşĥ 國國國⟧ +malay_macrolanguage=⟦萬 Мăļāÿ 國⟧ +modern_greek_1453_=⟦萬 Ğґĕєĸ 國⟧ +mongolian=⟦萬萬 Моńġόĺíàή 國國⟧ +norwegian=⟦萬萬 Ñõѓщêğїάл 國國⟧ +persian=⟦萬萬 Pëгśįâπ 國國⟧ +polish=⟦萬 Pоļîśн 國⟧ +portuguese=⟦萬萬 Pσѓτũĝµëѕĕ 國國⟧ +romanian=⟦萬萬 Ѓōmαʼnĭάп 國國⟧ +russian=⟦萬萬 Яūşŝïåņ 國國⟧ +serbian=⟦萬萬 Şεŕьĩαņ 國國⟧ +sichuan_yi=⟦萬萬 Şï¢нūάп Ϋï 國國⟧ +sicilian=⟦萬萬 Şίċĩļìαл 國國⟧ +slovak=⟦萬 Şľőνāķ 國⟧ +slovenian=⟦萬萬 Ѕĺōνёŋіáй 國國⟧ +somali=⟦萬 Şõmąľî 國⟧ +spanish=⟦萬萬 ŞΡăŋĭŝħ 國國⟧ +swahili_macrolanguage=⟦萬萬 Ŝẃäнīĺì 國國⟧ +swedish=⟦萬萬 Şшěďìŝħ 國國⟧ +swiss_german=⟦萬萬萬 Şώìśş Ğëґmäπ 國國國⟧ +tagalog=⟦萬萬 Ţâğãľőĝ 國國⟧ +telugu=⟦萬 Τëľūġů 國⟧ +thai=⟦萬 Ŧĥαî 國⟧ +tibetan=⟦萬萬 Ŧϊвέτáπ 國國⟧ +turkish=⟦萬萬 Ţũякïѕħ 國國⟧ +ukrainian=⟦萬萬 Üĸгǻϊήϊάй 國國⟧ +uzbek=⟦萬 Ųźьèĸ 國⟧ +vietnamese=⟦萬萬 Vїèŧпāmêѕè 國國⟧ diff --git a/src/i18n/es-419.properties b/src/i18n/es-419.properties index 766812735..650ad37a2 100644 --- a/src/i18n/es-419.properties +++ b/src/i18n/es-419.properties @@ -108,6 +108,10 @@ off=Desactivar media_audio=Audio # Label for alternate audio tracks in media player track=Pista +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/es-ES.properties b/src/i18n/es-ES.properties index abbb04422..b54b6eb12 100644 --- a/src/i18n/es-ES.properties +++ b/src/i18n/es-ES.properties @@ -108,6 +108,10 @@ off=Desactivar media_audio=Audio # Label for alternate audio tracks in media player track=Pista +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/fi-FI.properties b/src/i18n/fi-FI.properties index 6d3a056b6..a2b81be80 100644 --- a/src/i18n/fi-FI.properties +++ b/src/i18n/fi-FI.properties @@ -108,6 +108,10 @@ off=Ei käytössä media_audio=Äänet # Label for alternate audio tracks in media player track=Ääniraita +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/fr-CA.properties b/src/i18n/fr-CA.properties index bd6a951b0..ba6d2177a 100644 --- a/src/i18n/fr-CA.properties +++ b/src/i18n/fr-CA.properties @@ -108,6 +108,10 @@ off=Désactiver media_audio=Audio # Label for alternate audio tracks in media player track=Piste +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/fr-FR.properties b/src/i18n/fr-FR.properties index bd6a951b0..ba6d2177a 100644 --- a/src/i18n/fr-FR.properties +++ b/src/i18n/fr-FR.properties @@ -108,6 +108,10 @@ off=Désactiver media_audio=Audio # Label for alternate audio tracks in media player track=Piste +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/hi-IN.properties b/src/i18n/hi-IN.properties index 2ef8087e8..0cb36ddb5 100644 --- a/src/i18n/hi-IN.properties +++ b/src/i18n/hi-IN.properties @@ -108,6 +108,10 @@ off=बंद media_audio=ऑडियो # Label for alternate audio tracks in media player track=ट्रैक +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/it-IT.properties b/src/i18n/it-IT.properties index 38006ff89..7edc21e5d 100644 --- a/src/i18n/it-IT.properties +++ b/src/i18n/it-IT.properties @@ -108,6 +108,10 @@ off=Disattiva media_audio=Audio # Label for alternate audio tracks in media player track=Traccia +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/ja-JP.properties b/src/i18n/ja-JP.properties index 6e2722498..6747d3d9b 100644 --- a/src/i18n/ja-JP.properties +++ b/src/i18n/ja-JP.properties @@ -108,6 +108,10 @@ off=オフ media_audio=オーディオ # Label for alternate audio tracks in media player track=トラック +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/ko-KR.properties b/src/i18n/ko-KR.properties index 5adbb9602..c502a081a 100644 --- a/src/i18n/ko-KR.properties +++ b/src/i18n/ko-KR.properties @@ -108,6 +108,10 @@ off=끄기 media_audio=오디오 # Label for alternate audio tracks in media player track=트랙 +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/nb-NO.properties b/src/i18n/nb-NO.properties index 7d06134d8..e9a47c4de 100644 --- a/src/i18n/nb-NO.properties +++ b/src/i18n/nb-NO.properties @@ -108,6 +108,10 @@ off=av media_audio=Lyd # Label for alternate audio tracks in media player track=Spor +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/nl-NL.properties b/src/i18n/nl-NL.properties index faa1880c6..081c58d2c 100644 --- a/src/i18n/nl-NL.properties +++ b/src/i18n/nl-NL.properties @@ -108,6 +108,10 @@ off=Uit media_audio=Audio # Label for alternate audio tracks in media player track=Nummer +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/pl-PL.properties b/src/i18n/pl-PL.properties index f58e30bdf..08bc1e48e 100644 --- a/src/i18n/pl-PL.properties +++ b/src/i18n/pl-PL.properties @@ -108,6 +108,10 @@ off=Wyłącz media_audio=Dźwięk # Label for alternate audio tracks in media player track=Ścieżka +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/pt-BR.properties b/src/i18n/pt-BR.properties index 2de4f0242..77d4152d2 100644 --- a/src/i18n/pt-BR.properties +++ b/src/i18n/pt-BR.properties @@ -108,6 +108,10 @@ off=Desativadas media_audio=Áudio # Label for alternate audio tracks in media player track=Faixa +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/ru-RU.properties b/src/i18n/ru-RU.properties index e33af555b..2fee27ac6 100644 --- a/src/i18n/ru-RU.properties +++ b/src/i18n/ru-RU.properties @@ -108,6 +108,10 @@ off=Выкл. media_audio=Аудио # Label for alternate audio tracks in media player track=Запись +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/sv-SE.properties b/src/i18n/sv-SE.properties index 5640a5c94..395540471 100644 --- a/src/i18n/sv-SE.properties +++ b/src/i18n/sv-SE.properties @@ -108,6 +108,10 @@ off=Av media_audio=Ljud # Label for alternate audio tracks in media player track=Spår +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/tr-TR.properties b/src/i18n/tr-TR.properties index ed48ec167..41f68eec7 100644 --- a/src/i18n/tr-TR.properties +++ b/src/i18n/tr-TR.properties @@ -108,6 +108,10 @@ off=Kapalı media_audio=Ses # Label for alternate audio tracks in media player track=Parça +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/zh-CN.properties b/src/i18n/zh-CN.properties index 30ca5202a..27a7b06dd 100644 --- a/src/i18n/zh-CN.properties +++ b/src/i18n/zh-CN.properties @@ -108,6 +108,10 @@ off=关闭 media_audio=音频 # Label for alternate audio tracks in media player track=曲目 +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/i18n/zh-TW.properties b/src/i18n/zh-TW.properties index 9cb0b48b3..837afeead 100644 --- a/src/i18n/zh-TW.properties +++ b/src/i18n/zh-TW.properties @@ -108,6 +108,10 @@ off=關 media_audio=音訊 # Label for alternate audio tracks in media player track=曲目 +# Label for auto-generated captions +media_auto_generated_captions=Auto-Generated Captions +# Label for auto-generated language choice +auto_generated=Auto-Generated # 3D Preview # Button tooltip for showing/hiding the list of animation clips diff --git a/src/lib/viewers/media/DashViewer.js b/src/lib/viewers/media/DashViewer.js index 90de4230c..68b671357 100644 --- a/src/lib/viewers/media/DashViewer.js +++ b/src/lib/viewers/media/DashViewer.js @@ -1,7 +1,7 @@ import VideoBaseViewer from './VideoBaseViewer'; import PreviewError from '../../PreviewError'; import fullscreen from '../../Fullscreen'; -import { appendQueryParams, get } from '../../util'; +import { appendQueryParams, get, getProp } from '../../util'; import { getRepresentation } from '../../file'; import { MEDIA_STATIC_ASSETS_VERSION } from '../../constants'; import getLanguageName from '../../lang'; @@ -19,6 +19,9 @@ const DEFAULT_VIDEO_HEIGHT_PX = 480; const SHAKA_CODE_ERROR_RECOVERABLE = 1; class DashViewer extends VideoBaseViewer { + /** @property {Object} - shakaExtern.TextDisplayer that displays auto-generated captions, if available */ + autoCaptionDisplayer; + /** * @inheritdoc */ @@ -83,6 +86,7 @@ class DashViewer extends VideoBaseViewer { if (this.mediaControls) { this.mediaControls.removeListener('qualitychange', this.handleQuality); this.mediaControls.removeListener('subtitlechange', this.handleSubtitle); + this.mediaControls.removeListener('audiochange', this.handleAudioTrack); } this.removeStats(); super.destroy(); @@ -279,12 +283,26 @@ class DashViewer extends VideoBaseViewer { */ handleSubtitle() { const subtitleIdx = parseInt(this.cache.get('media-subtitles'), 10); - if (this.textTracks[subtitleIdx] !== undefined) { + + // Auto-generated index 0 ==> turn auto-generated text track on + if (this.autoCaptionDisplayer && subtitleIdx === 0) { + // Manually set text visibility with the custom Shaka Text Displayer + this.autoCaptionDisplayer.setTextVisibility(true); + this.emit('subtitlechange', __('auto_generated')); + + // Valid non-auto-generated index ==> turn specified text track on + } else if (this.textTracks[subtitleIdx] !== undefined) { const track = this.textTracks[subtitleIdx]; this.player.selectTextTrack(track); this.player.setTextTrackVisibility(true); this.emit('subtitlechange', track.language); + + // Index -1 ==> turn subtitles/captions off } else { + if (this.autoCaptionDisplayer) { + this.autoCaptionDisplayer.setTextVisibility(false); + } + this.player.setTextTrackVisibility(false); this.emit('subtitlechange', null); } @@ -426,12 +444,53 @@ class DashViewer extends VideoBaseViewer { * @return {void} */ loadSubtitles() { + // Load subtitles from video, if available this.textTracks = this.player.getTextTracks().sort((track1, track2) => track1.id - track2.id); if (this.textTracks.length > 0) { this.mediaControls.initSubtitles( this.textTracks.map((track) => getLanguageName(track.language) || track.language), getLanguageName(this.options.location.locale.substring(0, 2)) ); + return; + } + + // Attempt to load auto-generated captions + // @TODO 07-07-18: Support both auto-generated captions and subtitles from videos + this.loadAutoGeneratedCaptions(); + } + + /** + * Loads auto-generated captions + * + * @return {void} + */ + loadAutoGeneratedCaptions() { + const textCues = []; + + // Convert Box Skill transcript cards to Shaka Text Cues + const skillsCards = getProp(this.options, 'file.metadata.global.boxSkillsCards.cards'); + if (skillsCards) { + const transcriptCard = skillsCards.find((card) => card.skill_card_type === 'transcript'); + const entries = transcriptCard.entries || []; + entries.forEach((entry) => { + // Set defaults if transcript data is malformed (start/end: 0s, text: '') + const { appears = [{}], text = '' } = entry; + const { start = 0, end = 0 } = Array.isArray(appears) && appears.length > 0 ? appears[0] : {}; + textCues.push(new shaka.text.Cue(start, end, text)); + }); + } + + if (textCues.length > 0) { + this.autoCaptionDisplayer = new shaka.text.SimpleTextDisplayer(this.mediaEl); + this.autoCaptionDisplayer.append(textCues); + this.player.configure({ textDisplayFactory: this.autoCaptionDisplayer }); + this.mediaControls.initSubtitles( + [__('auto_generated')], + getLanguageName(this.options.location.locale.substring(0, 2)) + ); + + // Update the subtitles/caption button to reflect auto-translation + this.mediaControls.setLabel(this.mediaControls.subtitlesButtonEl, __('media_auto_generated_captions')); } } diff --git a/src/lib/viewers/media/__tests__/DashViewer-test.js b/src/lib/viewers/media/__tests__/DashViewer-test.js index 603daf241..d53813179 100644 --- a/src/lib/viewers/media/__tests__/DashViewer-test.js +++ b/src/lib/viewers/media/__tests__/DashViewer-test.js @@ -73,7 +73,12 @@ describe('lib/viewers/media/DashViewer', () => { selectAudioLanguage: () => {}, setTextTrackVisibility: () => {} }; + dash.autoCaptionDisplayer = { + append: () => {}, + setTextVisibility: () => {} + }; stubs.mockPlayer = sandbox.mock(dash.player); + stubs.mockDisplayer = sandbox.mock(dash.autoCaptionDisplayer); dash.mediaControls = { addListener: () => {}, @@ -84,7 +89,8 @@ describe('lib/viewers/media/DashViewer', () => { initAlternateAudio: () => {}, removeAllListeners: () => {}, removeListener: () => {}, - show: sandbox.stub() + show: sandbox.stub(), + setLabel: () => {} }; stubs.mockControls = sandbox.mock(dash.mediaControls); @@ -616,7 +622,7 @@ describe('lib/viewers/media/DashViewer', () => { expect(dash.showMedia).to.not.be.called; }); - it('should load the meta data for the media element, show the media/play button, load subs, check for autoplay, and set focus', () => { + it('should load the metadata for the media element, show the media/play button, load subs, check for autoplay, and set focus', () => { sandbox.stub(dash, 'isDestroyed').returns(false); sandbox.stub(dash, 'showMedia'); sandbox.stub(dash, 'isAutoplayEnabled').returns(true); @@ -789,12 +795,72 @@ describe('lib/viewers/media/DashViewer', () => { expect(dash.textTracks).to.deep.equal([russian, foo, und, empty, doesntmatter, zero]); }); - it('should do nothing if there are no available subtitles', () => { + it('should attempt to load auto-generated subtitles if no there are no subtitles from the video', () => { + sandbox.stub(dash, 'loadAutoGeneratedCaptions'); + const subs = []; stubs.mockPlayer.expects('getTextTracks').returns(subs); stubs.mockControls.expects('initSubtitles').never(); dash.loadSubtitles(); + + expect(dash.loadAutoGeneratedCaptions).to.be.called; + }); + }); + + describe('loadAutoGeneratedCaptions()', () => { + it('should convert to Shaka Cues, initialize subtitles, set button label & return true if there are auto-generated subtitles', () => { + dash.options = { + file: { + metadata: { + global: { + boxSkillsCards: { + cards: [ + { + skill_card_type: 'transcript', + entries: [ + { + appears: [ + { + start: 0, + end: 1 + } + ], + text: 'sometext' + } + ] + } + ] + } + } + } + }, + location: { + locale: 'en-US' + } + }; + const appendStub = sandbox.stub(); + sandbox.stub(shaka.text, 'SimpleTextDisplayer').returns({ + append: appendStub + }); + + stubs.mockPlayer.expects('configure').withArgs({ + textDisplayFactory: sandbox.match.any + }); + stubs.mockControls.expects('initSubtitles').withArgs(['Auto-Generated'], 'English'); + stubs.mockControls.expects('setLabel').withArgs(sandbox.match.any, 'Auto-Generated Captions'); + + dash.loadAutoGeneratedCaptions(); + + expect(appendStub).to.be.called; + }); + + it('should not set a custom text displayer if there are no transcript cards', () => { + stubs.mockPlayer.expects('configure').never(); + stubs.mockControls.expects('initSubtitles').never(); + stubs.mockControls.expects('setLabel').never(); + + dash.loadAutoGeneratedCaptions(); }); }); @@ -846,7 +912,18 @@ describe('lib/viewers/media/DashViewer', () => { }); describe('handleSubtitle()', () => { + it('should select auto-generated track if auto-caption displayer exists', () => { + stubs.mockDisplayer.expects('setTextVisibility').withArgs(true); + sandbox.stub(dash.cache, 'get').returns('0'); + + dash.handleSubtitle(); + + expect(stubs.emit).to.be.calledWith('subtitlechange', 'Auto-Generated'); + }); + it('should select track from front of text track list', () => { + dash.autoCaptionDisplayer = undefined; + const english = { language: 'eng', id: 3 }; const russian = { language: 'rus', id: 4 }; const french = { language: 'fra', id: 5 }; @@ -862,6 +939,8 @@ describe('lib/viewers/media/DashViewer', () => { }); it('should select track from end of text track list', () => { + dash.autoCaptionDisplayer = undefined; + const english = { language: 'eng', id: 3 }; const russian = { language: 'rus', id: 4 }; const french = { language: 'fre', id: 5 }; @@ -877,6 +956,8 @@ describe('lib/viewers/media/DashViewer', () => { }); it('should select track from middle of text track list', () => { + dash.autoCaptionDisplayer = undefined; + const english = { language: 'eng', id: 3 }; const russian = { language: 'rus', id: 4 }; const french = { language: 'fre', id: 5 }; @@ -900,6 +981,7 @@ describe('lib/viewers/media/DashViewer', () => { sandbox.stub(dash.cache, 'get').returns('-1'); stubs.mockPlayer.expects('selectTextTrack').never(); stubs.mockPlayer.expects('setTextTrackVisibility').withArgs(false); + stubs.mockDisplayer.expects('setTextVisibility').withArgs(false); dash.handleSubtitle(); diff --git a/yarn.lock b/yarn.lock index 501cf2104..8e89aed10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2532,7 +2532,7 @@ cssnano-cli@^1.0.5: read-file-stdin "^0.2.0" write-file-stdout "0.0.2" -cssnano@^3.0.0, cssnano@^3.10.0: +cssnano@^3.0.0, cssnano@^3.10.0, cssnano@^3.4.0: version "3.10.0" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: @@ -5408,12 +5408,12 @@ known-css-properties@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.6.1.tgz#31b5123ad03d8d1a3f36bd4155459c981173478b" -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" +last-call-webpack-plugin@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-2.1.2.tgz#ad80c6e310998294d2ed2180a68e9589e4768c44" dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" + lodash "^4.17.4" + webpack-sources "^1.0.1" lazy-cache@^1.0.3: version "1.0.4" @@ -6627,12 +6627,12 @@ optimist@^0.6.1, optimist@~0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optimize-css-assets-webpack-plugin@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-4.0.2.tgz#813d511d20fe5d9a605458441ed97074d79c1122" +optimize-css-assets-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-3.2.0.tgz#09a40c4cefde1dd0142444a873c56aa29eb18e6f" dependencies: - cssnano "^3.10.0" - last-call-webpack-plugin "^3.0.0" + cssnano "^3.4.0" + last-call-webpack-plugin "^2.1.2" optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" @@ -9664,7 +9664,7 @@ webpack-log@^1.0.1: loglevelnext "^1.0.1" uuid "^3.1.0" -webpack-sources@^1.0.1, webpack-sources@^1.1.0: +webpack-sources@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: