PageSourceSearch

https://finnish-streaming-dual-sub.netlify.app/assets/js/121e1470.2ab050be.js

js finnish-streaming-dual-sub.netlify.app collected 2026-10-03 10:44:18 UTC 13,459 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunklanding_page=globalThis.webpackChunklanding_page||[]).push([[490],{1739:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/turn-on-subtitles-yle-areena-c3ae9d9f46b18bf5168aedfe08094a7b.png"},2215:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/add-new-deepl-translation-key-54b778d028f3ac8c267addfcbc563a4a.png"},3082:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"guidance","title":"Guidance","description":"This page provides step-by-step instructions on how to set up and use the extension.","source":"@site/docs/guidance.md","sourceDirName":".","slug":"/guidance","permalink":"/guidance","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"docsSidebar","previous":{"title":"Features","permalink":"/features"},"next":{"title":"Support","permalink":"/support"}}');var i=t(4848),r=t(8453);const o={},a="Guidance",l={},d=[{value:"Installation",id:"installation",level:2},{value:"For YLE Areena:",id:"for-yle-areena",level:3},{value:"For Ruutu:",id:"for-ruutu",level:3},{value:"Setting Up Your Translation Key",id:"setting-up-your-translation-key",level:2},{value:"\u2139\ufe0f What is a translation key? How do I get one?",id:"\u2139\ufe0f-what-is-a-translation-key-how-do-i-get-one",level:3},{value:"\ud83d\udcd6 What is a translation key (API key)?",id:"-what-is-a-translation-key-api-key",level:4},{value:"\ud83e\udd14 Why do I need to set this up?",id:"-why-do-i-need-to-set-this-up",level:4},{value:"\ud83d\udd11 How to get your translation key (one-time setup):",id:"-how-to-get-your-translation-key-one-time-setup",level:4},{value:"\ud83d\udca1 Note: DeepL Character Limits",id:"-note-deepl-character-limits",level:3}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"guidance",children:"Guidance"})}),"\n",(0,i.jsx)(n.p,{children:"This page provides step-by-step instructions on how to set up and use the extension."}),"\n",(0,i.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.a,{href:"https://chromewebstore.google.com/detail/yle-areena-dual-subtitles/olmapcjpickcoabnjleheppoignffpdd",children:"Learn Finnish: Dual Subtitles for Finnish Streaming on Chrome Extension Webstore"})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Click "Add to Chrome".'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Open Extension popup and click ",(0,i.jsx)(n.code,{children:"Settings"})," button."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)("img",{src:t(7122).A,alt:"Extension popup page",style:{maxWidth:"75%",borderRadius:"8px",border:"1px solid #404040"}}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Add your ",(0,i.jsx)(n.code,{children:"DeepL Translation Key"}),"."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)("img",{src:t(2215).A,alt:"Add new DeepL translation key",style:{maxWidth:"75%",borderRadius:"8px",border:"1px solid #404040"}}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"(Optional) Select your preferred translation language from the dropdown (default is English). You can choose from Vietnamese, Japanese, Spanish, and all other languages supported by DeepL."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Here is the ",(0,i.jsx)(n.a,{href:"https://www.youtube.com/watch?v=O3B7BCvd99Y",children:"extension demo video"})," if you want to see the whole usage flow."]}),"\n",(0,i.jsx)(n.h3,{id:"for-yle-areena",children:"For YLE Areena:"}),"\n",(0,i.jsxs)(n.ol,{start:"6",children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.a,{href:"https://areena.yle.fi/tv",children:"YLE Areena TV"})," and choose your content."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Remember to turn on subtitle ",(0,i.jsx)(n.code,{children:"Tekstitykset.Ohjelmatekstitys"})," and toggle on ",(0,i.jsx)(n.code,{children:"Dual Sub"})," switch on the bottom bar."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)("img",{src:t(1739).A,alt:"Turn on YLE Areena default subtitle",style:{maxWidth:"75%",borderRadius:"8px",border:"1px solid #404040"}}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"for-ruutu",children:"For Ruutu:"}),"\n",(0,i.jsxs)(n.ol,{start:"6",children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.a,{href:"https://www.ruutu.fi",children:"Ruutu.fi"})," and select a video with Finnish subtitles."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Remember to turn on subtitle ",(0,i.jsx)(n.code,{children:"Ohjelmatekstitys"})," and toggle on ",(0,i.jsx)(n.code,{children:"Dual Sub"})," switch on the bottom bar."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)("img",{src:t(3601).A,alt:"Turn on YLE Areena default subtitle",style:{maxWidth:"75%",borderRadius:"8px",border:"1px solid #404040"}}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,i.jsx)(n.strong,{children:"If subtitles don't appear:"})," Try toggling the ",(0,i.jsx)(n.code,{children:"Dual Sub"})," switch off and on again. If that doesn't help, reload the page. Ruutu's subtitle mechanics can sometimes be unpredictable \u2014 a quick toggle or refresh usually fixes it."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"setting-up-your-translation-key",children:"Setting Up Your Translation Key"}),"\n",(0,i.jsx)(n.h3,{id:"\u2139\ufe0f-what-is-a-translation-key-how-do-i-get-one",children:"\u2139\ufe0f What is a translation key? How do I get one?"}),"\n",(0,i.jsx)(n.h4,{id:"-what-is-a-translation-key-api-key",children:"\ud83d\udcd6 What is a translation key (API key)?"}),"\n",(0,i.jsx)(n.p,{children:"A translation key is like a password that allows this extension to use DeepL's translation service."}),"\n",(0,i.jsxs)(n.p,{children:["\u26a0\ufe0f ",(0,i.jsx)(n.strong,{children:"Important:"})," DeepL's free tier gives a character allowance to try out, but ",(0,i.jsx)(n.strong,{children:"it does not reset each month"}),". A credit card is required to sign up. Once the allowance runs out, you'll need a paid plan. Check ",(0,i.jsx)(n.a,{href:"https://www.deepl.com/en/pro/change-plan#api",children:"DeepL's current plans"})," for up-to-date pricing."]}),"\n",(0,i.jsx)(n.h4,{id:"-why-do-i-need-to-set-this-up",children:"\ud83e\udd14 Why do I need to set this up?"}),"\n",(0,i.jsx)(n.p,{children:'You might wonder: "Other dual-sub extensions like Language Reactor, Trancy, and InterSub work instantly\u2014why not this one?"'}),"\n",(0,i.jsx)(n.p,{children:"Here's the truth: Free services either use low-quality translation APIs, run at a loss (subsidized by premium users), or monetize your data. \ud83d\udcb0"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"I built this extension differently because I believe you deserve:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\u2728 ",(0,i.jsx)(n.strong,{children:"Best-in-class translations"})," \u2013 DeepL provides high-quality translations to 30+ languages including English, Vietnamese, Japanese, and more"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\udd12 ",(0,i.jsx)(n.strong,{children:"Complete privacy"})," \u2013 No data collection, no ads, no tracking"]}),"\n",(0,i.jsxs)(n.li,{children:["\u267b\ufe0f ",(0,i.jsx)(n.strong,{children:"Sustainability"})," \u2013 No active maintenance burden on my end"]}),"\n",(0,i.jsxs)(n.li,{children:["\ud83d\ude80 ",(0,i.jsx)(n.strong,{children:"Try it out"})," \u2013 DeepL's free tier gives a character allowance to get started (one-time, not recurring)"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Yes, it takes 5-10 minutes for one-time setup, but you get premium quality without compromise. Worth it? I think so! \ud83d\ude0a"}),"\n",(0,i.jsx)(n.h4,{id:"-how-to-get-your-translation-key-one-time-setup",children:"\ud83d\udd11 How to get your translation key (one-time setup):"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"\ud83d\udcfa Video walkthrough (recommended):"})," ",(0,i.jsx)(n.a,{href:"https://www.youtube.com/watch?v=VgpxUH7SbSY",children:"Watch 1 min tutorial from Youtube"})]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"\ud83d\udcdd Step-by-step instructions:"})}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Sign up for a free DeepL account"})}),"\n",(0,i.jsxs)(n.p,{children:["Visit ",(0,i.jsx)(n.a,{href:"https://www.deepl.com/en/your-account",children:"DeepL Account Signup"})," and create your account"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Select your DeepL API plan"})}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.a,{href:"https://www.deepl.com/en/pro#developer",children:"DeepL Developer Page"}),", look for ",(0,i.jsx)(n.strong,{children:'"Find your perfect plan"'}),", then click the ",(0,i.jsx)(n.strong,{children:'"DeepL API"'})," tab. Select the plan that suits your needs."]}),"\n",(0,i.jsx)("img",{src:t(9803).A,alt:"Find your perfect plan section",style:{maxWidth:"75%",borderRadius:"8px",border:"1px solid #404040"}}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create your subscription"})}),"\n",(0,i.jsxs)(n.p,{children:["Choose the free tier to try it out, or a paid plan for recurring monthly access. See ",(0,i.jsx)(n.a,{href:"https://www.deepl.com/en/pro/change-plan#api",children:"DeepL's current plans"})," for details."]}),"\n",(0,i.jsx)(n.p,{children:"\ud83d\udcb3 A credit card is required even for the free tier"}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Create your API key"})}),"\n",(0,i.jsxs)(n.p,{children:["After the subscription has been made, go to ",(0,i.jsx)(n.a,{href:"https://www.deepl.com/en/your-account/keys",children:"DeepL Key Page"}),". Click the ",(0,i.jsx)(n.strong,{children:'"Create Key"'}),' button and give it a name (e.g., "YLE Dualsub translation key")']}),"\n",(0,i.jsx)("img",{src:t(4168).A,alt:"Create you key",style:{maxWidth:"75%",borderRadius:"8px",border:"1px solid #404040"}}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Copy your key"})}),"\n",(0,i.jsx)(n.p,{children:"Your API key will look like this:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Free tier: ",(0,i.jsx)(n.code,{children:"fcb8779e-4837-4e2f-99ef-1ac7255d2ed2:fx"})," (ends with ",":fx",")"]}),"\n",(0,i.jsxs)(n.li,{children:["Paid tier: ",(0,i.jsx)(n.code,{children:"fcb8779e-4837-4e2f-99ef-1ac7255d2ed2"}
1)," (no ",":fx"," suffix)"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Paste it in the extension"})}),"\n",(0,i.jsx)(n.p,{children:'Copy the entire key and paste it in the extension\'s options page, select your account type (Free/Paid), and click "Add new translation key"'}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\ud83c\udf89 That's it! Your extension is now ready to provide high-quality translations."}),"\n",(0,i.jsxs)(n.p,{children:["\ud83d\udcda Need more help? View the ",(0,i.jsx)(n.a,{href:"https://support.deepl.com/hc/en-us/articles/360020695820-API-key-for-DeepL-API",children:"official DeepL guide"})]}),"\n",(0,i.jsx)(n.h3,{id:"-note-deepl-character-limits",children:"\ud83d\udca1 Note: DeepL Character Limits"}),"\n",(0,i.jsxs)(n.p,{children:["DeepL's free tier gives a character allowance to get started (one-time, does not reset monthly). Once you run out, check ",(0,i.jsx)(n.a,{href:"https://www.deepl.com/en/pro/change-plan#api",children:"DeepL's current plans"})," for paid options. If that feels expensive, share one key with friends or fellow Finnish learners and split the cost! You can add up to 2 translation keys to this extension."]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},3601:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/turn-on-subtitles-ruutu-113053848b145592f17c5f3493f595ad.png"},4168:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/create_your_key-9a71c1f9b676d53eac6d9500c52d3f37.png"},7122:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/extension-popup-page-589fdec17c9d7e38e71208440a03407d.png"},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var s=t(6540);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}},9803:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/find_your_perfect_plan-cb7e311c8bbddd60bdc4641e3fe68c19.png"}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.