When you watch a movie on your PC and it doesn't have subtitles, you can download a small subtitle file (less than 100kb) to enable it.
To download subtitle files, here's a good website to recommend: http://www.opensubtitles.org/
However, the most common problem with these subtitle files is the delay issue. Some of them are 4 seconds delayed, while some of them are 2 seconds earlier than the actual conversation. It's hard to find the exact subtitle file for your movie because there are so many different versions out there.
Luckily there's an easy way to fix it.
1) Download this small application I found. It is just a small script file and therefore no installation required.
PS: This small app only supports .SRT subtitle format, which is the most common subtitle format now.
2) Launch it, follow the screenshot below to select your subtitle file, select output folder (where your new subtitle will be created), set your delay to either + or - in milliseconds (1000ms = 1second) and go!
3) Test your new subtitle file and using trial and error method, repeat the steps above until you get the delay right.
End Note:
If your subtitle is on sync at the start of the movie, but slowly goes out of sync as the movie progresses, it's probably because your subtitle file and your movie uses different framerates. Different videos have different framerates such as 25FPS or 23.976FPS. Simply changing the delay won't work in this case, so if you know the framerate of your video you may change your subtitle's framerate with this little app as well :)