All language subtitles for 084 Switching the Active Player.en_US1

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hu Hungarian Download
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt-PT Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:01,090 --> 00:00:03,920 Let's keep building or Pig Game. 2 00:00:03,920 --> 00:00:04,860 And in this video, 3 00:00:04,860 --> 00:00:07,670 we're gonna be concerned with switching 4 00:00:07,670 --> 00:00:10,423 from one active player to another one. 5 00:00:11,970 --> 00:00:16,113 So as we already know, whenever the player rules are one, 6 00:00:17,000 --> 00:00:20,820 we will enter this else block, right? 7 00:00:20,820 --> 00:00:23,061 So when the dice is not a 1, 8 00:00:23,061 --> 00:00:26,460 then the current dice gets added to the current score. 9 00:00:26,460 --> 00:00:28,820 But if we happen to roll a 1, 10 00:00:28,820 --> 00:00:30,840 then we lose all our score 11 00:00:30,840 --> 00:00:34,920 and it is the next players round, all right? 12 00:00:34,920 --> 00:00:36,490 So in the previous lecture, 13 00:00:36,490 --> 00:00:40,790 we implemented this functionality of adding the dice 14 00:00:40,790 --> 00:00:42,670 to the current score only 15 00:00:42,670 --> 00:00:46,200 as the player number 0, okay? 16 00:00:46,200 --> 00:00:48,370 But now we need to make this work 17 00:00:48,370 --> 00:00:51,770 for both player number 0 and number 1. 18 00:00:51,770 --> 00:00:52,690 And so for that, 19 00:00:52,690 --> 00:00:55,210 we need to keep track of which player 20 00:00:55,210 --> 00:00:57,690 is actually the current player. 21 00:00:57,690 --> 00:00:58,850 And in order to do that, 22 00:00:58,850 --> 00:01:01,940 we actually need to keep track of which player 23 00:01:01,940 --> 00:01:05,280 is actually the active player in a moment 24 00:01:05,280 --> 00:01:07,270 that the dice was rolled. 25 00:01:07,270 --> 00:01:09,690 So basically we need to know which player 26 00:01:09,690 --> 00:01:11,990 is right now playing. 27 00:01:11,990 --> 00:01:13,770 And with right now I mean, 28 00:01:13,770 --> 00:01:17,350 whenever the button is clicked, all right? 29 00:01:17,350 --> 00:01:19,420 So we will create another variable, 30 00:01:19,420 --> 00:01:21,560 which will hold exactly that. 31 00:01:21,560 --> 00:01:22,970 So it will hold 0, 32 00:01:22,970 --> 00:01:25,900 if the current player is player 0 33 00:01:25,900 --> 00:01:27,360 and it will hold 1, 34 00:01:27,360 --> 00:01:31,093 if the active player is player number 1. 35 00:01:33,490 --> 00:01:38,490 So let active player. 36 00:01:38,870 --> 00:01:41,820 And since we start with the first player, 37 00:01:41,820 --> 00:01:43,750 we set it to 0, 38 00:01:43,750 --> 00:01:47,230 because remember that player number 1 is player 0 39 00:01:47,230 --> 00:01:51,860 and player 2 is here in our code player number 1. 40 00:01:51,860 --> 00:01:55,600 And in fact, let me explain you right away, why that is. 41 00:01:55,600 --> 00:01:58,400 So the reason is that we will store the scores 42 00:01:58,400 --> 00:02:01,560 of both players in an array. 43 00:02:01,560 --> 00:02:02,773 So let me do that here. 44 00:02:03,990 --> 00:02:08,780 So let or actually const, because it's an array. 45 00:02:08,780 --> 00:02:12,530 So const scores equals an array, 46 00:02:12,530 --> 00:02:16,713 which will start with 0 points for both sides. 47 00:02:17,560 --> 00:02:21,180 And so these scores are actually the final scores. 48 00:02:21,180 --> 00:02:24,100 So the big scores, which accumulate, 49 00:02:24,100 --> 00:02:25,983 let me show that to you in the demo. 50 00:02:26,960 --> 00:02:30,390 So that's these big scores here. 51 00:02:30,390 --> 00:02:32,010 So these are the current scores, 52 00:02:32,010 --> 00:02:34,310 and these are, let's say the total scores 53 00:02:34,310 --> 00:02:36,470 that keep accumulating, right? 54 00:02:36,470 --> 00:02:41,270 And so we are storing these two scores here in an array. 55 00:02:41,270 --> 00:02:43,660 And remember that the array is zero-based 56 00:02:43,660 --> 00:02:45,610 and so the score of player number 1 57 00:02:45,610 --> 00:02:47,590 will be here at position 0, 58 00:02:47,590 --> 00:02:51,110 and the score of player two will be at position 1. 59 00:02:51,110 --> 00:02:53,150 And so that's why it will be handy 60 00:02:53,150 --> 00:02:55,660 to have the activePlayer variable here, 61 00:02:55,660 --> 00:02:59,260 also set to 0 and 1, okay? 62 00:02:59,260 --> 00:03:01,900 And we will see that in action actually, 63 00:03:01,900 --> 00:03:06,610 in the next lecture, where we will hold the scores, 64 00:03:06,610 --> 00:03:10,040 but for now knowing which is the active player 65 00:03:10,040 --> 00:03:11,870 is going to be important 66 00:03:11,870 --> 00:03:15,180 to actually display the current score here 67 00:03:15,180 --> 00:03:16,890 for the current player 68 00:03:16,890 --> 00:03:20,610 and not just always for player number 0. 69 00:03:20,610 --> 00:03:24,200 So instead of manipulating the element of player 0, 70 00:03:24,200 --> 00:03:26,660 so the current score of player 0, 71 00:03:26,660 --> 00:03:31,230 let's actually select the element dynamically, okay? 72 00:03:31,230 --> 00:03:32,580 So let me show that to you. 73 00:03:33,840 --> 00:03:37,210 So we will actually now do the selection right here, 74 00:03:37,210 --> 00:03:41,213 document. and actually let's use getElementById. 75 00:03:42,922 --> 00:03:45,270 And then here we need the class name. 76 00:03:45,270 --> 00:03:49,240 So the class name is gonna be either current O, 77 00:03:49,240 --> 00:03:54,210 for player 0, or current 1 for player 1. 78 00:03:54,210 --> 00:03:57,530 And so maybe now you start to see once more 79 00:03:57,530 --> 00:04:00,940 why we use the active player as 0 or 1, 80 00:04:00,940 --> 00:04:03,740 because now we can use that variable 81 00:04:03,740 --> 00:04:07,763 to basically build these collapse names, okay? 82 00:04:08,760 --> 00:04:10,520 So when it's player 0, 83 00:04:10,520 --> 00:04:15,520 we will then end up with current--0 84 00:04:15,760 --> 00:04:16,770 and if it's 1, 85 00:04:16,770 --> 00:04:19,440 we will end up with current--1 86 00:04:19,440 --> 00:04:21,540 because that's gonna be the active player. 87 00:04:23,510 --> 00:04:27,430 So what I just said is to do this. 88 00:04:27,430 --> 00:04:28,387 So current-- 89 00:04:31,180 --> 00:04:36,180 and then the number of the active player, okay? 90 00:04:38,550 --> 00:04:40,090 And so now on this, 91 00:04:40,090 --> 00:04:42,740 we will get the text content 92 00:04:42,740 --> 00:04:46,243 and set it to the current score, okay? 93 00:04:50,280 --> 00:04:54,050 So again, this 1 here will always set the text content 94 00:04:54,050 --> 00:04:56,410 on player number 0, 95 00:04:56,410 --> 00:04:58,860 but here we do instead select 96 00:04:58,860 --> 00:05:02,840 the score element dynamically based on which 97 00:05:02,840 --> 00:05:05,163 is the active player right now, okay? 98 00:05:08,450 --> 00:05:10,450 So this is a very handy trick 99 00:05:10,450 --> 00:05:14,523 of building the ID name like this dynamically. 100 00:05:16,580 --> 00:05:19,530 Now here, when we switch the player, 101 00:05:19,530 --> 00:05:22,820 we of course will then need to change that value 102 00:05:22,820 --> 00:05:25,713 from zero to one or from one to zero. 103 00:05:26,720 --> 00:05:28,560 So let's do that here. 104 00:05:28,560 --> 00:05:33,560 So essentially switching the next player, 105 00:05:33,870 --> 00:05:36,240 that means to change that value. 106 00:05:36,240 --> 00:05:38,320 So activePlayer, 107 00:05:38,320 --> 00:05:42,050 and now here, let's not use again, the turnery operator. 108 00:05:42,050 --> 00:05:46,320 So we can say if the activePlayer is 0, 109 00:05:48,700 --> 00:05:51,370 then we want the new activePlayer to be 1 110 00:05:52,320 --> 00:05:54,980 and else it should be 0. 111 00:05:54,980 --> 00:05:58,180 All right, does that make sense? 112 00:05:58,180 --> 00:06:02,490 So essentially we are reassigning the active player here 113 00:06:02,490 --> 00:06:06,320 and we're checking whether right now it is player 0. 114 00:06:06,320 --> 00:06:10,910 So if it is then here the result of this whole operator, 115 00:06:10,910 --> 00:06:13,210 so which again is all of this, 116 00:06:13,210 --> 00:06:15,000 then the result will be 1. 117 00:06:15,000 --> 00:06:19,000 And so then activePlayer will be equal to 1, 118 00:06:19,000 --> 00:06:22,100 but if this is false here, 119 00:06:22,100 --> 00:06:24,480 so if the player is actually 1, 120 00:06:24,480 --> 00:06:27,830 well then the active player will become 0. 121 00:06:27,830 --> 00:06:30,160 And so essentially this allows us to switch 122 00:06:30,160 --> 00:06:32,200 from zero to 1. 123 00:06:32,200 --> 00:06:37,200 All right, so I think this would actually work already. 124 00:06:38,430 --> 00:06:39,263 So this is the demo, 125 00:06:39,263 --> 00:06:41,070 this is the real game. 126 00:06:41,070 --> 00:06:44,260 Let's just make sure that it works and reload it. 127 00:06:44,260 --> 00:06:45,870 And now as we roll the dice, 128 00:06:45,870 --> 00:06:48,650 remember that we are player number 0 right now. 129 00:06:48,650 --> 00:06:49,483 So this one. 130 00:06:50,790 --> 00:06:55,750 So 3 gets added to 0 is 3 and 7, 131 00:06:55,750 --> 00:06:57,670 so this works right now. 132 00:06:57,670 --> 00:07:01,840 Three, let's wait for a one so that we can switch the player 133 00:07:01,840 --> 00:07:03,343 and see what happens then. 134 00:07:07,600 --> 00:07:08,760 Okay. 135 00:07:08,760 --> 00:07:10,250 So now we're all the one. 136 00:07:10,250 --> 00:07:13,040 And so now we should be player number 1. 137 00:07:13,040 --> 00:07:15,860 So and essentially player 2. 138 00:07:15,860 --> 00:07:18,040 And so now when we roll the dice again, 139 00:07:18,040 --> 00:07:21,810 the new score should appear down here, right? 140 00:07:21,810 --> 00:07:24,380 Because this here is current 1. 141 00:07:24,380 --> 00:07:26,660 So this element here is the current 1 142 00:07:26,660 --> 00:07:29,510 that we just defined previously 143 00:07:30,900 --> 00:07:34,520 and indeed it works. 144 00:07:34,520 --> 00:07:36,410 So something happened here, 145 00:07:36,410 --> 00:07:39,440 but of course we need to reset the current score. 146 00:07:39,440 --> 00:07:42,240 So the current score was just for this player, 147 00:07:42,240 --> 00:07:44,080 but now we edit that for 148 00:07:44,080 --> 00:07:47,130 to the current score of the previous round. 149 00:07:47,130 --> 00:07:48,720 So as we switch the player, 150 00:07:48,720 --> 00:07:53,170 we also need to reset the current score, okay? 151 00:07:53,170 --> 00:07:56,620 So the logic of the active player is already working, 152 00:07:56,620 --> 00:08:00,140 but we still need to reset the current score. 153 00:08:00,140 --> 00:08:03,620 Also, you see that visually nothing changed yet. 154 00:08:03,620 --> 00:08:07,290 So in the real game, when the player is switched, 155 00:08:07,290 --> 00:08:09,250 this side here becomes white 156 00:08:09,250 --> 00:08:12,260 and so the background kind of changes there. 157 00:08:12,260 --> 00:08:15,200 Oh, and another thing is that this current score here 158 00:08:15,200 --> 00:08:19,800 should also then be set back to 0 again, okay? 159 00:08:19,800 --> 00:08:21,730 So basically the previous player 160 00:08:21,730 --> 00:08:26,030 should have its current score here visibly set to 0. 161 00:08:27,110 --> 00:08:29,210 So let me just tell you what happens here. 162 00:08:30,920 --> 00:08:32,743 When we switch to another player, 163 00:08:33,607 --> 00:08:35,007 so you see the current score 164 00:08:37,070 --> 00:08:38,110 and now there's a 1 165 00:08:38,110 --> 00:08:40,820 and so now this side here became white 166 00:08:40,820 --> 00:08:42,030 and then of course the current 167 00:08:42,030 --> 00:08:44,720 of the other player became 0. 168 00:08:44,720 --> 00:08:47,480 So let's first take care of that logic 169 00:08:47,480 --> 00:08:49,140 of changing the values 170 00:08:49,140 --> 00:08:52,363 and then I will show you how we change the background here. 171 00:08:54,240 --> 00:08:55,560 So let's go back. 172 00:08:55,560 --> 00:08:57,530 And the first thing that we need to do 173 00:08:57,530 --> 00:09:00,000 is to set the current score back to 0. 174 00:09:01,610 --> 00:09:05,770 So current score back to 0, 175 00:09:06,765 --> 00:09:11,470 and then we need to set the text content back to 0, okay? 176 00:09:11,470 --> 00:09:16,470 So basically of the active player before we switch it. 177 00:09:16,750 --> 00:09:20,200 So for example, player 0 was playing 178 00:09:20,200 --> 00:09:22,130 and then we switched to player 1, 179 00:09:22,130 --> 00:09:23,640 but before we do that switch, 180 00:09:23,640 --> 00:09:25,720 we need to change the current score 181 00:09:25,720 --> 00:09:28,700 of player 0 back to 0. 182 00:09:28,700 --> 00:09:33,700 So we need to do that here before we do the switch, okay? 183 00:09:33,980 --> 00:09:36,993 So basically what we do is the same as this, 184 00:09:39,290 --> 00:09:43,183 but we simply set it to 0, okay. 185 00:09:45,020 --> 00:09:46,840 So we're selecting the current player, 186 00:09:46,840 --> 00:09:49,360 which at this point is still 0 187 00:09:49,360 --> 00:09:52,530 and then we set his textContent to 0 188 00:09:52,530 --> 00:09:56,420 and then we switch from zero to one, okay? 189 00:09:56,420 --> 00:09:59,930 And actually we can also set the current score to 0 here, 190 00:09:59,930 --> 00:10:01,430 but that doesn't really matter 191 00:10:01,430 --> 00:10:04,793 because the current score is not bound to any player. 192 00:10:05,880 --> 00:10:09,223 So saving it, now let's try again. 193 00:10:11,310 --> 00:10:13,640 So all of this is still working, 194 00:10:13,640 --> 00:10:16,023 but let's wait what happens on the one? 195 00:10:20,050 --> 00:10:23,190 So that's a lot of points here, okay. 196 00:10:23,190 --> 00:10:27,050 So the current score is back to 0 here 197 00:10:27,050 --> 00:10:28,400 and now watch what happens 198 00:10:29,330 --> 00:10:32,970 and yeah, nice, that's working now. 199 00:10:32,970 --> 00:10:36,120 So now the actual current score variable 200 00:10:36,120 --> 00:10:38,080 was also set back to 0 201 00:10:38,080 --> 00:10:43,080 and so 6 plus 0 now on player number 1 is 6. 202 00:10:43,910 --> 00:10:47,240 So as we keep doing that, it keeps adding here 203 00:10:47,240 --> 00:10:50,513 and now we're back to player number 0, so this one. 204 00:10:53,270 --> 00:10:55,010 Then I wrote another one right away 205 00:10:55,010 --> 00:10:58,593 and so we switched to this player back again immediately. 206 00:10:59,700 --> 00:11:03,270 But you see that the logic here is already working. 207 00:11:03,270 --> 00:11:07,130 Now, the only thing that's left to do is that visual change. 208 00:11:07,130 --> 00:11:12,130 So putting that white background here on this other player. 209 00:11:12,900 --> 00:11:16,223 So let me show you in the HTML, how that works. 210 00:11:18,090 --> 00:11:22,620 And so basically the player that is active 211 00:11:22,620 --> 00:11:24,900 has this whole section here 212 00:11:24,900 --> 00:11:28,940 with the player--active class. 213 00:11:28,940 --> 00:11:31,380 So you see that this first section, 214 00:11:31,380 --> 00:11:34,360 which is for player 0 right now has this class 215 00:11:34,360 --> 00:11:37,810 because player 0 is always the first player. 216 00:11:37,810 --> 00:11:40,370 But then as we switch to the other player, 217 00:11:40,370 --> 00:11:44,160 we want to remove that class from here 218 00:11:44,160 --> 00:11:47,720 and basically put it here on the other player. 219 00:11:47,720 --> 00:11:50,250 Okay, so let's do that. 220 00:11:50,250 --> 00:11:51,083 And as always, 221 00:11:51,083 --> 00:11:54,137 we will start by selecting these two players. 222 00:11:54,137 --> 00:11:56,930 And this time is actually a class. 223 00:11:56,930 --> 00:12:00,523 So player 0 class and player 1 class. 224 00:12:01,740 --> 00:12:06,453 So let's do that here and do that as the first. 225 00:12:07,340 --> 00:12:11,793 So const player 0 element, 226 00:12:13,450 --> 00:12:16,243 document.querySelector. 227 00:12:17,090 --> 00:12:20,093 And now we need the dot for the class name, 228 00:12:21,350 --> 00:12:23,223 so that's player--1. 229 00:12:24,170 --> 00:12:25,390 And I'm just copying it here, 230 00:12:25,390 --> 00:12:26,393 I'm too lazy. 231 00:12:29,050 --> 00:12:31,850 And this 1 here is actually player 0, 232 00:12:31,850 --> 00:12:35,540 so 0 and 1 right here. 233 00:12:35,540 --> 00:12:39,300 And now let's actually change their class names. 234 00:12:39,300 --> 00:12:44,300 So the player active class, so down here. 235 00:12:44,360 --> 00:12:45,193 And for that, 236 00:12:45,193 --> 00:12:47,630 I will now show you yet another method 237 00:12:47,630 --> 00:12:50,573 that's available on the class list property. 238 00:12:52,896 --> 00:12:55,290 Well actually let's start typing first. 239 00:12:55,290 --> 00:12:58,027 So player0Element.Classlist, 240 00:13:01,030 --> 00:13:04,990 and we already saw the remove method, 241 00:13:04,990 --> 00:13:06,590 we saw the add method, 242 00:13:06,590 --> 00:13:09,290 but now I will show you the toggle method. 243 00:13:09,290 --> 00:13:11,250 So we will use toggle now. 244 00:13:11,250 --> 00:13:13,080 And what toggle will do is that 245 00:13:13,080 --> 00:13:16,270 it will add the class if it is not there 246 00:13:16,270 --> 00:13:19,870 and if it is there, it will remove it, okay. 247 00:13:19,870 --> 00:13:21,730 So we could do that manually also 248 00:13:21,730 --> 00:13:24,110 by checking if the class is there 249 00:13:24,110 --> 00:13:26,500 and only removing it if it is, 250 00:13:26,500 --> 00:13:30,290 but using toggle takes that work away from us. 251 00:13:30,290 --> 00:13:32,990 So actually we could have used this toggle method 252 00:13:32,990 --> 00:13:35,850 in the previous project of the popup, 253 00:13:35,850 --> 00:13:36,683 but back then, 254 00:13:36,683 --> 00:13:39,920 I actually wanted to show you the contains method. 255 00:13:39,920 --> 00:13:41,570 Remember that? 256 00:13:41,570 --> 00:13:45,203 But now again, we will use toggle here because it is easier. 257 00:13:46,520 --> 00:13:51,520 And so now we simply have to add this player active class 258 00:13:51,790 --> 00:13:55,070 or actually to toggle it. 259 00:13:55,070 --> 00:13:58,130 So if we do that on both then it will work 260 00:14:02,400 --> 00:14:07,400 because on player 0 it will remove the class if it's there 261 00:14:08,200 --> 00:14:10,140 and if it's not it will add it. 262 00:14:10,140 --> 00:14:12,820 And the same thing on the other player. 263 00:14:12,820 --> 00:14:15,890 And since we start with the player active class 264 00:14:15,890 --> 00:14:17,523 on only one element, 265 00:14:18,530 --> 00:14:20,820 so only on player 0 here, 266 00:14:20,820 --> 00:14:23,030 then toggling both at the same time 267 00:14:23,030 --> 00:14:25,180 will ensure that it's only ever 268 00:14:25,180 --> 00:14:28,130 on one of the elements at once. 269 00:14:28,130 --> 00:14:31,690 So let's now check that out 270 00:14:32,600 --> 00:14:34,400 just to make sure we load it here 271 00:14:35,640 --> 00:14:36,823 and let's wait for it. 272 00:14:42,240 --> 00:14:45,480 It's taking a lot of time and yes, 273 00:14:45,480 --> 00:14:47,360 so we switched the active player 274 00:14:47,360 --> 00:14:49,623 and now it's also nicely visible. 275 00:14:51,840 --> 00:14:55,100 And yes, we changed it back as well 276 00:14:55,100 --> 00:14:59,640 and so that works beautifully great job. 277 00:14:59,640 --> 00:15:02,600 And now basically the only thing that's missing 278 00:15:02,600 --> 00:15:04,930 to actually make this game work 279 00:15:04,930 --> 00:15:07,300 is to hold the current score. 280 00:15:07,300 --> 00:15:10,813 And so that is gonna be the topic of the next video. 20123

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.