Subtitle Workshop Manual

Last updated: 08.08.2013

Subtitle Workshop version: 6.0

The ultimate subtitle editing tool!
Copyright © 2001-2004 URUSoft.
Copyright © 2013 Andrey Spiridonov.

(All key shortcuts mentioned in this manual are based on the defaults)



Chapter 1: Introduction to Subtitle Workshop


1.1 General overview

Subtitle Workshop is the most complete, efficient and convenient subtitle editing tool. It supports all the subtitle formats you need and has all the features you would want from a subtitle editing program. Subtitle Workshop makes subtitle creating/editing/converting tasks almost a pleasure, the amicable and intuitive interface mixes easy to access menus & must have features with advanced functions and a remarkable speed and stability, drastically reducing subtitle editing time. It includes spell check function and an advanced video preview feature which will ease the task even more. The best choice for the beginner, expert or the fansubber. Have a try, and you'll forget the rest!

Subtitle Workshop was originally thought in order to make subtitle editing very easy, but having all the necessary and not-so-necessary features that make the life of a subtitle editor or translator easier. The visual interface is one of the many things that characterizes Subtitle Workshop. Most of the options are indeed, self-explanatory so even a kid can use this software.

Complete list of features:
List of currently supported formats:

1.2 Reading & Writing engine

Subtitle Workshop's reading & writing engine has highly evolved since the beginning, and was rewritten from scratch a bunch of times. Many people have gladly reported bugs and they were all fixed as soon as we could. As time passed, the engine became more reliable and stable. Because of this reliability is that we decided to release the SubtitleAPI.


1.2.1 What is SubtitleAPI?
It is simply a dynamic link library (DLL) which contains the Subtitle Workshop reading and writing engine. This DLL was created so updates in the reading and writing engine of Subtitle Workshop can be published independently from Subtitle Workshop itself. After downloading a new version of the SubtitleAPI.dll file, you must replace the old file located in the "SubtitleAPI" subfolder of the main Subtitle Workshop folder. The next time you open Subtitle Workshop, new formats/bug fixes will make effect.


1.3 Visual overview

Here's the Main Window of Subtitle Workshop:
Subtitle Workshop Main Window

One of the things that make Subtitle Workshop unique is it's interface. It is very user friendly and keeps the basic and advanced functionality in easy to access menus.
The interface is ideal for virtually *any* task - you can obtain an excellent performance creating subtitles, fixing times manually, translating subtitles, and of course, using all the built in features.

1.3.1 Menu Bar

This is the main menu of Subtitle Workshop and it sits on top of the Main Window.

1.3.2 Toolbar

The Toolbar is below the Menu Bar and consists of buttons for the most important functions of Subtitle Workshop. Note that the "Undo" and "Redo" buttons offer a dropdown list for the recent Undo/Redo actions and you can Undo/Redo multiple actions at once. The Toolbar can be shown or hidden from the "View/Toolbar" menu.

1.3.3 Left Panel

The Left Panel sits on the left side of Subtitle Workshop and contains important controls for Working Mode (Time or Frames), FPS (Input FPS and Current FPS), Charsets (for Text and Translation), as well as other fields like the Notes field. The Left Panel can be shown or hidden from the "View/Left Panel" menu ([F4]).

1.3.4 Video Preview Panel

The Video Preview Panel is below the Toolbar and on the right of the Left Panel, and consists of two areas: the Video Display - a large area where the video file is displayed (along with the subtitle for the current moment of the video); and the Video Controls Panel - an area with buttons for controlling the video playback (and some other buttons). The Video Preview Panel can be shown or hidden from the "Movie/Video Preview Mode" menu ([Ctrl]+[Q]). Learn more about the Video Preview Panel in 5.8 Internal Video Preview.

1.3.5 Subtitles List

The Subtitles List is below the Video Preview Panel, and it displays a list of all subtitles in the current subtitle file. It has the following columns: Num (the subtitle number), Pause (the pause between the subtitle and the previous subtitle), Show (the Show Time of the subtitle), Hide (the Hide Time of the subtitle), Duration (the Duration of the subtitle - that is the Hide Time minus the Show Time), Text (the Text of the subtitle), and Translation (only in TRANSLATOR MODE - the text of the Translation file subtitle). All the columns can be repositioned by a drag-and-drop and shown or hidden from the "View/Columns" menu.

1.3.6 Time Controls Area

The Time Controls Area is below the Subtitles List, on the left. It consists of four boxes for editing the timing values (Show, Hide, Pause, and Duration) and four Time Control Buttons.
Each of the Time Control Buttons has two functions - one when it's clicked with the left mouse button, and another when it's clicked with the right mouse button. The buttons' functions (their tooltips also indicate them) are as follows (left click function/right click function):
The Time Control Buttons can be shown or hidden from the "View/Show time control buttons" menu.
The entire Time Controls Area can be shown or hidden from the "View/Show time controls" menu ([F5]).
The width of the Time Controls Area can be resized via a horizontal splitter located between the Time Controls Area and the Text Controls Area.

1.3.7 Text Controls Area

The Text Controls Area is below the Subtitles List, on the right. It consists of a Text edition field, a Text Style Bar (buttons for Bold, Italic, Underline, Color, and Remove All Tags), a Text label (display the number of characters in each line of the current subtitle and the total number of characters), and a Lines label (displays the number of lines in the current subtitle).
In TRANSLATOR MODE, the Text Controls Area contains another set of the same controls for the Translation file text.
The Text Style Bars can be shown or hidden from the "View/Text style bars" menu.
The Lines labels can be shown or hidden from the "View/Show lines count" menu.


1.3.8 Statusbar

The Statusbar is located on the bottom of Subtitle Workshop. It displays the current subtitle file format and the number of the currently selected subtitle(s). When the number is clicked, the Subtitles List is centered on that subtitle. The Statusbar can be shown or hidden from the "View/Statusbar" menu.





1.4 Getting started

Get started using Subtitle Workshop's basic features.
1.4.1 Loading a subtitle file
To load a subtitle file simply click the "File/Load Subtitle" menu ([Ctrl]+[O]). Additionally, you can drag-and-drop your file into the Main Window, or if the extensions are associated, just double click on the subtitle file you wish to open.

Every time you load a file using any of these methods, Subtitle Workshop will check to see if it is a valid file and what is its format. Most of the files will load correctly, but if you get the "The file is a bad subtitle or an unsupported format" error message, there is still some chance you can load the file. First of all you MUST be sure about the format of the file, if you are, then proceed like this:
  1. Click the "File/Load subtitle" menu.
  2. A dialogue will pop up, you have to select the right filter in it (there is a combo box where you see the "All supported files" text, you have to click the button with the arrow that is next to it and select the format of the file).
  3. Once you have done this, press the Open button in the dialogue.
This way there will be no automatic format recognition nor file check. If the file still can't be loaded, you will get an error message. In this case, if you are sure the file is a text-based subtitle format, e-mail it to us and we will try to fix the problem or add the new format.


1.4.2 Loading a video file
To load a video file simply click the "Movie/Open" menu ([Ctrl]+[P]). If you get the "File is not a valid video file" error message, make sure you have the right codecs installed. If you don't, download and install a codec pack of your choice (the K-Lite Codec Pack for example), it should fix most of the playback problems.


1.4.3 Create a new file
Using Subtitle Workshop you can easily create new subtitles from scratch, and then save them in any file format. To do so, click the "File/New subtitle..." menu ([Ctrl]+[N]). Once you have done this, you can start adding subtitles, and then save the file by the "File/Save" menu ([Ctrl]+[S]).


1.4.4 Adding subtitles
You just need to press the [Insert] key or click the "Edit/Insert subtitle" menu. The subtitle will always be added right after the focused subtitle in the Subtitles List. The default duration of the new subtitle is one second, and the Show Time of it is going to be the Hide Time of the previous one plus 200 milliseconds (these values can be modified in Subtitle Workshop's Settings). If you are adding the subtitle in a blank list, its Show Time will be zero.

If you want to insert a subtitle before the selected subtitle in the Subtitles List, press [Shift]+[Insert] or the "Edit/Insert before" menu.


1.4.5 Deleting subtitles
Select all the subtitles you wish to delete by holding the [Ctrl] key and clicking on them, then press the [Delete] key or click the "Edit/Remove selected" menu.


1.4.6 Manually edit a subtitle
Every subtitle is composed by three parts:
  1. The Show Time - the time in which the subtitle is shown.
  2. The Hide Time - the time in which the subtitle is hidden.
  3. The Text - the text of the subtitle itself.
Subtitle Workshop lets you easily edit any of these fields.

To edit the Show Time, just click the "Show" field, set the time (or frames) you wish and press [Enter].
To edit the Hide Time, click the "Hide" field, set the time (or frames) you wish and press [Enter]. Note that you can also edit the Hide Time of a subtitle by changing the "Duration" field, and you can also edit the Show Time by changing the "Pause" field.
Additionally, you can edit any of these time values using the Up-Down buttons at the right side of each text box.
You can also edit any of these time values by using the scroll wheel of your mouse when the mouse cursor is located over one of the four boxes ("Show", "Hide", "Pause", or "Duration").

To edit the text, simply click the "Text" box and write the desired text. In the Subtitles List, the character "|" (pipe) represents a new line.


1.4.7 Text style and color tags
First of all, you must know that Subtitle Workshop has different Tags Modes (see "Settings/Settings/General/Tags mode").

In the new Multiple Tags Mode, Subtitle Workshop can support as many tags as you want per a single subtitle, i.e. you can apply tags to the entire subtitle, to a single line, to a single word, or even to a single symbol. The tags in this mode are: In the old Single Tags Mode, Subtitle Workshop only supports tags for the whole subtitle. Thus, you only need to open the tags because closing them would be useless. The supported tags in this mode are: To add tags in any mode, you can use the Text Style Bars buttons, simply write the tags manually, or use the right-click Context Menus of the Subtitles List or the Text and Translation fields.

WARNING: Please note that not all subtitle formats support style tags and color tags. If you save these tags in a subtitle format which doesn't support them, the tags will be lost.


1.4.8 FPS and Input FPS
Knowing the difference between this two fields is crucial to work with Subtitle Workshop.
You have to modify these fields in order to convert FPS.

Input FPS is the Frames Per Second (FPS) of the movie that the current subtitle file was originally made for. FPS is the Frames Per Second (FPS) of the movie you want to adjust the current subtitle file for.

When editing frame based subtitles there is no need for Input FPS (we only need FPS) so "Input FPS" will become absolutely useless after loading frame based subtitles (it won't have any effect in the times).

Q: How do I convert a 25 FPS subtitle File into 29,97?
A: Simply load the subtitle file, set "Input FPS" to 25, and then set "FPS" to 29,97. You have just changed frame rate of the file.


1.5 Command line parameters

It is highly recommended that you send each parameter to Subtitle Workshop in quotes (" ") to avoid problems with spaces in the name/path of the files.

To open a file:
SubtitleWorkshop.exe "/OPEN(File)"


Example:
SubtitleWorkshop.exe "/OPEN(C:\Subtitle.srt)"

To convert from one format to another:
SubtitleWorkshop.exe "/CONVERT(Input_File/Output_File/Output_Format/Input_FPS/Output_FPS)"


Input FPS and Output FPS are only required if you are handling frame based files. Otherwise, you may specify any value. In the FPS, if not a rounded value, the decimal digits have to be separated using the decimal separator (configurable from Control panel/Regional and language settings) of the PC on which Subtitle Workshop is running. Usually it is "," or ".". The subtitle format has to be its name (in the form of a string). The formats you an use depends on the version of SubtitleAPI.

To see a list of all the supported formats and *exactly* how you should write them, call Subtitle Workshop like this:

SubtitleWorkshop.exe /GetSupportedFormats

After doing this, Subtitle Workshop will save a list of the supported formats to the path in which it is installed, in a TXT file with the name "SupportedFormats.txt".

Some examples:
SubtitleWorkshop.exe "/CONVERT(C:\Folder\Sub.smi/C:\Subtitle.pjs/Phoenix Japanimation Society/25/29,97)"
SubtitleWorkshop.exe "/CONVERT(C:\Subtitle.vsf/C:\Subtitle.jss/JACOSub 2.7+/23,976/0)"
SubtitleWorkshop.exe "/CONVERT(C:\Subtitle.srt/C:\Subtitle.sub/MicroDVD/29,97/29,97)"

To set a delay for the timings of a subtitle file:
SubtitleWorkshop.exe "/DELAY(Input_File/Output_File/Input_FPS/Delay_in_Milliseconds)"


Example:
SubtitleWorkshop.exe "/DELAY(C:\Subtitle.srt/C:\Subtitle.srt/0/-5000)"

The example above will set a -5 seconds delay to Subtitle.srt and overwrite it. We specify 0 as FPS since we are loading a time based format. As in the parameter to convert a file, if FPS is not a rounded value, the decimal digits have to be separated using the decimal separator of the PC in which Subtitle Workshop is running. If you specify a wrong FPS and FPS is really needed, then the default FPS (25) will be used.

To execute a Pascal Script:
SubtitleWorkshop.exe "/SCRIPT(Input_File/Output_File/Input_FPS/Pascal_script)"


Example:
SubtitleWorkshop.exe /SCRIPT(C:\Subtitle.srt/C:\Subtitle_out.srt/25/Copyright.pas)

The example above opens "Subtitle.srt", processes the Copyright.pas script, and saves the result to "Subtitle_out.srt". If you want to save the file in a different format, use the convert command line parameter instead. FPS is required, only if the input file is frame-based.


1.6 Language files

Language files are used to set the Interface Language of Subtitle Workshop. These files are located in the "Langs" subfolder of the main folder of Subtitle Workshop, and have the .LNG extension (they are actually ini files with a different extension - which means they are simple text files and you can edit them with any text editor). You can easily create your own language file or update a currently existing language file and use it in Subtitle Workshop. To do so, you must translate the English.lng (or any other .lng) file to the language you want, and then copy it to the "Langs" directory with the name language.lng (for example, Spanish.lng, English.lng, French.lng).

Warning! Do *NOT* translate the text between "[ ]" and the text after the % sign (for example "%s" or "%d"). Otherwise the language file will not work properly!

Tips: After you create a language file, send it to us so that we could include it in Subtitle Workshop. The name of the translator will be shown in the "About" Subtitle Workshop window.


1.7 Custom formats

This feature makes possible to save a subtitle file in a format that Subtitle Workshop doesn't support, or to easily create your own format or text files with subtitles. You can only *save* a file in a custom format, reading the file in Subtitle Workshop will not be possible.

To access the custom formats dialogue, first load a subtitle, then click the "File/Save as..." menu and then click the "Custom format" button.

Format name
Set the format name.

Extension Specifies the file extension of the format. Subtitle Workshop will use this when saving the file. Please note that the format of the extension must be "*.CHARS".

Structure
Specifies the time structure. h represents hours, m minutes, s seconds and z milliseconds. If you write more than one "h" or "m" or "s" or "z", all the "h" or "m" or "s" or "z" have to be together. You can't write something like "h:m:h:,zmzs". A time like "00:00:00,0" would be "hh:mm:ss,z" and a time like "0:00:00,000" would be "h:mm:ss,zzz". If you want the time structure to be just milliseconds, write "MS" instead of a time structure.

Time or frames
Check the "Time" field if you are going to work with time. If you are going to work with frames, then check the "frames" field and you don't need to specify a structure, because frames are always going to be a simple number.

FPS
Select the FPS of the subtitle you are saving. If you are saving a time subtitle to another time subtitle you don't need to touch this.

New line char
Specifies the character(s) to separate lines in subtitles. If you want to make new lines like in SubRip format (without using any new line char, just separating lines) then you should write "[Enter]" as the new line character.

Load project
Click this button to load the custom format project from an already saved file (*.cfp).

Save project
Click this button to save the project into a *.cfp file. This will save all the information visible on the "Custom formats" dialogue.

Text of the custom format script
The parts that Subtitle Workshop will write to a file can be divided in three, and in this order:
  1. A part that is written only once at the beginning of the file
  2. A part that is repeated each time there is a new subtitle
  3. A part that is written only once at the end of the file
All you have to do is to write those three sections in the text box. When you first open the "Custom formats" dialogue you can see a commented example. Comments are started with ** and are finished with !*. Due to this you can't write the characters "**" to a file because it would be understood as a comment start. If you want to write this two characters into a file you may use {asterisk} (this will write only one asterisk). To write two, "{asterisk}*" or "{asterisk}{asterisk}" are the same.

First, write the first section (if you want to have one). Then begin the second section (the repeating part) with {RepeatSub}.

Repeating section
In this section it is possible to write 4 things.
  1. The Show Time of the subtitle. You have to write {swStart} and Subtitle Workshop will replace it with the Show Time (or frames) value of the actual subtitle. You can also write {swFrameStart} and Subtitle Workshop will replace it with the frames. This way you can save the time, for example in hh:mm:ss,zzz:FRAMES format. If you want to put zeros in the left until you reach the desired length, you can write {swFrameStart,DesiredTotalLength}. You can do the same with the end frame.
  2. The end time of the subtitle. You have to write {swEnd} and Subtitle Workshop will replace it with the Hide Time (or frames) of the actual subtitle. You can also write {swFrameEnd}.
  3. The subtitle's text. You have to write {swText} and Subtitle Workshop will replace it by the subtitle's text, with the new line char you selected.
  4. The subtitle count (like in SubRip format). You have to write {SubCount}. This variable holds the actual index of the subtitle. The first subtitle will be "1", the second subtitle will be "2", etc. Some formats like SonicDVD need to add zeroes on the left until the length of the number string is for example 4. For this, write {SubCount,DesiredTotalLength} and Subtitle Workshop will add zeroes automatically.
Check the files in the "Custom Formats Examples" folder, and load some examples to see how to use this feature better.


Chapter 2: Time related features


2.1 Frame rate conversion

See FPS and Input FPS.


2.2 Set delay

Subtitle Workshop can set a positive or a negative delay, in time or frames. The delay is a fixed time or frames (constant) that represents the difference of the points where the subtitles *should* start, and currently *does* start. To apply a delay, first load your subtitle, then click the "Edit/Timings/Set delay..." menu ([Ctrl]+[D]). The delay dialogue will pop up.
If you are working in Time Mode, you will be able to set a time delay, and if you are working in Frames Mode, you will be able to set a frames delay. Subtitle Workshop will automatically detect the mode. You can choose if you want to apply the delay to all the subtitles, just to the selected ones (useful if only one part of the subtitle file appears later than it should), or from the first selected until the last subtitle (useful for subtitle synchronization).


2.3 Adjust subtitles

Subtitle Workshop can synchronize subtitles to a video by four methods. Whatever method you want to use, the first thing you have to do is to load the subtitle file you are going to adjust, and for methods 1, 2, and 4 you need to load the video file you want to take as a reference.
2.3.1 Method 1: Simple adjust, first and last subtitles
This method offers a lot of accuracy, and is recommended in most cases. After you loaded the subtitle file and video, do this:
2.3.2 Method 2: Synchronize using two points
This method will work very well in most cases. It works by taking two points of the subtitle file and two points of the video, and calculating the times using a linear algorithm. The first pair of points will be called "First sync points" and the last pair of points will be called "Last sync points". Each pair of points consist of one point in the subtitles and one point in the video, the point in the subtitle has the wrong times and the point of the video has the right times. After selecting the first sync points and the last sync points, Subtitle Workshop calculates the rest of the times appropriately. The closer first sync points are to the beginning and last sync points are to the end, the most accuracy you get. Note: if the point of the subtitle selected in the first sync points corresponds to the first subtitle, and the point of the subtitle selected in the last sync points corresponds to the last subtitle, then the first formula (first and last subtitles) will be used.

After understanding this basics you have to do this:
After doing this you will get a confirmation message, click "Yes" and the subtitle will be synchronized. Note that this method can also be used to sync only a part of the subtitles.
2.3.3 Method 3: Adjust to synchronized subtitles
Useful if you have desynchronized subtitles in one language and want to quickly adjust them to an already adjusted subtitle file in another language. This method will work even if both files have a different number of subtitles. The only requirement for proper adjustment is that first and last subtitles in both files correspond - that is, mean the same. This method is extremely easy: you just have to load the subtitles you want to sync and to click the "Timings/Adjust/Adjust to synchronized subtitles" menu ([Shift]+[Ctrl]+[B]), and load the synchronized file. Note: this method is NOT the same as the "Read timings from file" feature.

2.3.4 Method 4: Advanced subtitle adjust
Use this method if the traditional two points adjust fails. This unique feature makes possible to adjust subtitles in the worst cases, when desynchronization is not constant, or is different in different parts of the subtitle. This system lets you select multiple subtitle/video points so that you can synchronize the subtitle by "parts". The maximum number of points you can select is the number of subtitles there are.
For the best performance to be achieved you first have to load the subtitle file and then load the corresponding video. In the video preview controls, you will notice that last button is "Add subtitle/video synchronization point". You will need this button later. These are the steps you should follow now: A very important thing you must know is the use of the "If time is outside the points scope" option. There are three possibilities: When you are done configuring all the points and settings, click the Adjust! button.


2.4 Duration limits

Duration limits makes it possible to limit the minimum and maximum duration of all the subtitles in a subtitle file. Subtitles which are shown less than 1 second are usually hard to read, except if they are short words like "Yes" or "OK". Sometimes there are subtitles with more characters and with short duration, or subtitles with durations greater than 10 seconds - these are the cases in which you should use this feature. You can set a minimum and maximum possible duration for the subtitles. Each subtitle's duration which is shorter than the minimum duration allowed will be increased to the minimum possible duration you set, without causing overlapping with the next subtitle. Each subtitle's duration which is larger than the maximum possible duration will be set to the maximum duration you set.

To set duration limits, click the "Edit/Timings/Set duration limits..." menu ([Ctrl]+[L]). After that, you need to enter the maximum and minimum duration in milliseconds and press the Apply button.

When setting a minimum duration, if the "Increase at start if necessary" option is enabled, the subtitle duration will be increased at its start (the Show Time value will be decreased), if increasing it only at the end (increasing the Hide Time value) doesn't achieve the desired minimum duration.


2.5 Duration expander/reducer

Duration expander/reducer is a very nice feature in the cases you have a subtitle file that contains some long subtitles with short durations. This feature lets you expand or reduce the duration of certain subtitles under certain conditions. To access the Duration expander/reducer, click the "Edit/Timings/Duration expander/reducer" menu ([Shift]+[Ctrl]+[Y]).

The amount of time you want to expand or reduce the duration with is customizable, and may be set in seconds (with a precision of up to one millisecond) if you are working in Time Mode, or in frames (with a precision of up to one frame) if you are working in Frames Mode. You can also choose to expand/reduce the duration only under certain conditions, only if the subtitle is longer than a customizable number of characters, and/or only if the duration is shorter/longer (depends if you want to expand or reduce duration) than a fixed time. Additionally, the "prevent overlapping" check box should be checked so that no overlapping errors occur while increasing the Hide Time of the subtitles. When you have configured everything, you have to select if you want to apply Duration expansion/reduction to all the subtitles, or only to the selected subtitles. To finally expand/reduce the durations of the subtitles, press the Apply button.


2.6 Read times from file

Useful if you have one subtitle file in which the text of each subtitle is right but the timings are not, and you have another file with the same number of subtitles and with the right times. You just have to load the file with the right texts, and then click the "Edit/Timings/Read timings from file" menu ([Shift]+[Ctrl]+[T]). A dialogue will pop up, all you have to do is select the file with the right times in that dialogue and load it.


2.7 Extend length to next/previous subtitle

"Extend length to next" / "Extend length to previous" work only for the selected subtitles and have no effect over the last/first subtitle of the file. What they do is, they extend the length of each selected subtitle to the Show Time/Hide Time of the next/previous subtitle. To extend the length to the next/previous subtitle, first select the subtitles you want. Then click the "Edit/Timings/Extend length to next" menu ([Shift]+[Ctrl]+[E]) / the "Edit/Timings/Extend length to previous" menu ([Alt]+[Ctrl]+[E]).


2.8 Automatic durations

"Automatic durations" is a very useful feature in the cases when you have a subtitle file in which the durations of all (or some) subtitles is totally wrong. There are two methods for applying automatic durations that you can use. With the first one, you specify duration per character, word and line (the default values give very good results) and Subtitle Workshop calculates the durations for the subtitles. With the second one, you specify the number of maximum Characters per Second (CpS) you want all subtitles to have.
The Automatic durations feature may be useful to go faster when subtitling videos - you can only set Show Times manually, and let Subtitle Workshop calculate all Hide Times with Automatic durations. To access "Automatic durations", click the "Edit/Timings/Automatic durations" menu ([Shift]+[Ctrl]+[R]).
You can additionally specify if you want the durations to be increased at the start (the Show Time to be decreased) if necessary to achieve the desired durations, by enabling the "Increase at start if necessary" option. You can specify a maximum increase at the start in the box below (so that subtitles don't show *really* early).
You can also specify if you want to apply new durations in all cases, only if they are greater than the original ones, or only if they are smaller than the original ones. You can apply automatic durations to all the subtitles or just the selected ones.

The use of this feature together with Duration limits and Detect too long/short durations from Information and Errors can give excellent results in a short amount of time.


2.9 Shift subtitles

This feature moves all the selected subtitles Show Time a specified number of milliseconds forward/backward, without modifying their duration. It is very useful to easily modify timings to synchronize with a movie. To shift selected subtitles forward, click the "Edit/Timings/Shift +X milliseconds" menu ([Shift]+[Ctrl]+[H]). To shift selected subtitles backward, click the "Edit/Timings/Shift -X milliseconds" menu ([Shift]+[Ctrl]+[N]).


2.10 Shift to next/previous

These two features shift all the selected subtitles as close as possible to the next/previous subtitle. To access them, click the "Edit/Timings/Shift to next" menu / the "Edit/Timings/Shift to previous" menu.


2.11 Set pauses

It is important to have enough time (a pause) between every two subtitles. It helps the human eye to register the change when a new subtitle shows up on the screen.
To set the time pauses between the subtitles, click on the "Edit/Timings/Set pauses..." menu and set the desired pause value and the applied method in the window that pops up, and then press the "Apply" button.


2.12 Round time values

This function rounds all the time values to a selected value. This can make the time values much easier to read with a negligible duration modification.
To round the time values, click on the "Edit/Timings/Round time values..." menu, select the desired value to round the subtitles to (100 or 50 milliseconds are the best values) and press the "Apply" button. You can apply the rounding to all subtitles or only to the selected subtitles.


Chapter 3: Text & subtitles related features


Subtitle Workshop isn't just an ordinary subtitle editor - and thus it offers many text related functions to ease your work.


3.1 Smart line adjust

Smart line adjust is a very useful feature in the case you find a file that has a lot of subtitles that have more than two lines, or if the line breaks are just put stupidly. It applies better line breaks and constrains the subtitle's text to be in one or maximum two lines (depending on its length).

To use Smart line adjust, click on the "Edit/Texts/Smart line adjust..." menu. The function can break the text of a subtitle in two lines either in the middle (the "Equal lines" method), or on dialogue dashes and punctuation marks (the "Break on punctuation marks" method).
"Don't unbreak subtitles that are not too long" - the function will unbreak subtitles if possible, unless this option is enabled (e.g. this: "Hello.|How are you?" will NOT be changed to "Hello. How are you?" if this option is enabled).
"Adjust only long subs and subs with more than 2 lines" - enable this option if you don't want normal subtitles (subtitles that have less than 3 lines and their lines are not too long) to be modified (e.g. this: "I knew that he had a daughter|and she hated him." will NOT be changed to "I knew that he had a|daughter and she hated him." if this option is enabled), which preserves the original look of those subtitles and doesn't break their readability.
"Always try to find a better breaking point" - if this option (for the "Break on punctuation marks" method) is checked, Subtitle Workshop will always try to find a better break point; if it's not checked - Subtitle Workshop will try to find a better break point only if the previous break point is not a punctuation mark already.

This function has a "Fast" version - "Fast smart line adjust" - so that you can apply it fast by simply pressing a shortcut, without having to set any options. You may choose the length after which the subtitle will be broken in two lines, in the "Two lines if longer than" option in "Settings/General/Advanced".
To use Fast smart line adjust over a subtitle, just select the subtitle and click the "Edit/Texts/Fast smart line adjust" menu ([Ctrl]+[E]). Smart line adjust will take effect over all the selected subtitles, and they may be more than one. If you are working in translator mode, smart line adjust will affect both the original and the translated text.


3.2 Convert case

Sometimes you can stumble upon subtitle files that are all in uppercase, or in lowercase. Convert case can convert the casing of the texts. To access Convert case, click the "Edit/Texts/Convert case..." menu ([Shift]+[Ctrl]+[C]). You can select among five different case conversion modes:
  1. "Sentence type" only upper cases the first letter of a sentence. It turns "HELLO, thiS iS VERY nice. i don't WANT tO heAr IT." into "Hello, this is very nice. I don't want to hear it."

    if ""..." detection" is enabled, it will check if the final three characters of the previous subtitle are "..." and if they are, then it will not uppercase the first character of the current subtitle (it will think it's the continuation of the previous subtitle). If "Only first letter of first word" is enabled, Subtitle Workshop will uppercase only the first letter of each sentence and leave all other letters the way they are.
  2. "Lowercase" lower cases the whole text. Turns "HELLO!, thiS iS VERY nice. i don't WANT tO heAr IT." into "hello!, this is very nice. i don't want to hear it."
  3. "Uppercase" upper cases the whole text. Turns "HELLO!, thiS iS VERY nice. i don't WANT tO heAr IT." into "HELLO!, THIS IS VERY NICE. I DON'T WANT TO HEAR IT."
  4. "Title type" upper cases the first letter of each word and lowercases the rest. Turns "HELLO!, thiS iS VERY nice. i don't WANT tO heAr IT." into "Hello!, This Is Very Nice. I Don'T Want To Hear It."
  5. "Inverse type" lower cases the uppercase characters and upper cases the lowercase characters (reverses case). Turns "HELLO!, thiS iS VERY nice. i don't WANT tO heAr IT." into "hello!, THIs Is very NICE. I DON'T want To HEaR it."
Note that if you are working in translator mode, convert case will only work for the original text. If you want it to work for translation, then use the "Edit/Translation/Swap" feature.


3.3 Unbreak subtitles

The Unbreak subtitles feature combines the lines of multi-lined subtitles into one line, depending on certain conditions. To unbreak subtitles, click on the "Edit/Texts/Unbreak subtitles..." menu. "Don't unbreak if line length exceeds" - set a maximum line length "Don't unbreak subtitles with "-" on second line" - set not to unbreak subtitles with dialogue

This feature has a "Fast" version - "Fast unbreak subtitles" - so that you can apply it fast by simply pressing a shortcut, without having to set any options. "Fast unbreak subtitles" takes effect over all the selected subtitles, and makes each one of them to be in only one large line, unconditionally.

When working in translator mode, these features affect both the original text and the translation.


3.4 Divide lines

Divides a subtitle into two subtitles. Very useful for example if you have a subtitle file with a lot of subtitles with four (or more) lines, which are too big to be constrained into two lines with the "Smart line adjust" feature. Dividing a subtitle into two manually is possible but it is a very annoying job, since after you insert the subtitle you also have to set all the times and cut the text from the first subtitle to put in the second one. "Divide lines" does all this automatically and very quickly.

First, select the subtitle, then go to the "Edit/Texts/Divide lines..." menu ([Shift]+[Ctrl]+[D]). Then the "Divide line" dialogue will pop up. Note that if the selected subtitle has only one line that is shorter than the "Break line after" value set in "Settings/Advanced", the menu will be disabled and the key shortcut will not work.
In the "Divide lines" dialogue you are going to see two text boxes, one with the first subtitle's text and another one with second subtitle's text. You have to select after which line to divide, the default value will be correct most of the times. That option will be disabled if the subtitle you are dividing has only two lines. When you change this value, the text of both text boxes will be updated. If you notice that a line break disappears in some of the parts, go to "Settings/Advanced" and uncheck "Smart line adjust automatically". If that option is checked, after updating the text of each text box, it will be smartly adjusted into one or two lines. If you want to do it manually, pass the focus to the desired text box and press [Ctrl]+[E].
After this, you should focus on the timings of the subtitles. Most of the times the second subtitle will be displayed immediately after the first one, and so it is recommended to leave the "Continue directly" checkbox checked. If you want the second subtitle to be displayed some time after the first one, you have to uncheck that checkbox and enter the Show Time of the second subtitle. Additionally, you can use the time proportion buttons available at the top of the window. "1:1" means equal duration for both subtitles, "2:1" means the first will have two times the duration of the second one, etc. You can also use an automatic duration for each new subtitle by enabling the "Use automatic duration" option.

Finally, press the "Divide!" button.

This feature has a "Fast" version - "Fast divide lines" - so that you can apply it fast by simply pressing a shortcut, without having to set any options. "Fast divide lines" takes effect over all the selected subtitles.

When working in translator mode, divide lines will only insert an untranslated line in the translation, it will not divide the lines since it only works for original subtitle.


3.5 Set maximum line length

Sets a maximum line for the selected subtitles. As a result, the lines of a subtitle may be unbroken (combined) into a smaller number of lines, divided into a bigger number of lines, or their break points may simply be changed. That maximum length is configurable from "Settings/Advanced". While in translator mode, this feature affects both the original and the translated text.

Example (Max. line length set to 45):

"This is the extremely long text in which we are going to use this feature, that will break what you are reading in more lines."

To:

"This is the extremely long text in which we
are going to use this feature, that will
break what you are reading in more lines."


The lines have respectively 43, 40 and 41 characters. As you can see, no line exceeds the maximum line length.
The resulting text doesn't look good on the screen, so this feature should be used along with "Divide lines".


3.6 Read texts from file

The same as the "Read times from file" feature, but instead of reading the times it reads the texts.


3.7 Combine subtitles

Combines all the selected subtitles into one. For example:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 - Why don't you do that?
00:00:02,001 00:00:03,000 - I don't know!


Becomes:

Show Time Hide Time Text
00:00:01,000 00:00:03,000 - Why don't you do that?
- I don't know!

The Show Time of the new subtitle will be the Show Time of the first selected subtitle.
The Hide Time of the new subtitle will be the Hide Time of the last selected subtitle.

To combine two or more subtitles, select them and select the "Edit/Subtitles/Combine subtitles" menu ([Ctrl]+[K]).


3.8 Auto combine subtitles

With this feature you can automatically combine short subtitles. You can set which subtitles should be considered for combining by setting a maximum duration and a minimum CpS. The most important option is the "Punctuation marks detection" - when this option is turned on, the function will combine only lines of the same person (judging by the punctuation marks), so you won't have to add dialogue dashes afterwards. If you don't care if the lines of different characters will be combined (not recommended), you can turn it off.
You can use the Auto combine subtitles function by clicking on the "Edit/Subtitles/Auto combine subtitles..." menu. A dialogue will appear, that has the following settings:
"Combine if duration is less than" - combine only subtitles that have a duration less than this value.
"Combine if CpS is greater than" - combine only subtitles that have more CpS than this value.
"Don't combine if pause is greater than" - don't combine two subtitles, if the pause between them is greater than this value.
"Punctuation marks detection" - combine only lines of the same person (judging by the punctuation marks: e.g. if the first subtitle ends on a comma or on no punctuation mark, the second subtitle is a line of the same person; if the first subtitle ends on a dot, a question mark or an exclamation mark, the second subtitle MIGHT be a line of a different person, so the two subtitles won't be combined).
"Combined subtitles maximum duration" - when the two subtitles are combined, the resulting subtitle's duration shouldn't exceed that value.
"Decrease duration if necessary with no more than" - if the above value is exceeded, decrease the duration a bit (set how much with this value) and check again.
"Combined subtitles maximum line length" - maximum line length of the combined subtitle.

You can apply this function on all subtitles or only on the selected subtitles.
When you're done setting the options, click the "Apply" button.


3.9 Right-to-left

Features only useful for right to left languages, such as Hebrew or Arabic.


3.9.1 Reverse text
Reverses the text of all the selected subtitles. Example:

"Reverse this text!" to "!txet siht esreveR".

When in Translator Mode, this feature will only work for the original text. To make it work for the translation, use the "Edit/Translation/Swap" feature.
You can specify if you want to keep the order of the lines or not, for that, go to Settings/General and check or uncheck the "Keep order of lines when reverse text" option.

To reverse the text, select the desired subtitles and click the "Edit/Subtitles/Right-to-left/Reverse text" menu ([Ctrl]+[H]).


3.9.2 Fix punctuation
Fixes punctuation for right to left languages. Example:

"Fix this punctuation!" to "!Fix this punctuation".

In Translator Mode, this feature will only affect the translation. To make it work in original text, use the "Edit/Translation/Swap" feature or exit Translator Mode.
To fix the punctuation, select the desired subtitles and click the "Edit/Subtitles/Right to left/Fix punctuation" menu ([Shift]+[Ctrl]+[F]).


3.10 Sort

Sorts the subtitles according to their Show Time. To sort the subtitles, click the "Edit/Subtitles/Sort" menu ([Ctrl]+[Y]).


3.11 Delete unnecessary links / Delete dots at the beginning

"Delete unnecessary links" deletes dots ("..", "..." or more) when they are placed at the end of a subtitle and at the beginning of the next one. Example:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 But not exactly because...
00:00:02,001 00:00:03,000 ...what I want is clear.

Becomes:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 But not exactly because
00:00:02,001 00:00:03,000 what I want is clear.

Some people like it this way, others don't. To delete "unnecessary links", click the "Edit/Subtitles/Delete unnecessary links" menu ([Shift]+[Ctrl]+[G]).

"Delete dots at the beginning" is similar to "Delete unnecessary links", but it deletes only the dots ("..", "..." or more) at the beginning of a subtitle, and regardless of whether the previous subtitle has dots at the end or not. To delete dots at the beginning, click the "Edit/Subtitles/Delete dots at the beginning" menu.
Both functions will make effect over the entire subtitle, not just the selected subtitles.


3.12 Search & Replace

Subtitle Workshop's Search & Replace is very fast and offers some extended options when you press the "More >" button. Explanation of the options:

Case sensitive
Performs the search/replace being sensitive to UPPERCASE and lowercase characters.

Match whole words
Will find the text only if it's forming a word.

Preserve case on replace
Clones the case of the original text when replacing. E.g. text to find is "DOG" and text to replace by is "CAT", Subtitle Workshop finds "Dog" and replaces it by "Cat" and not by "CAT".

The text to find or to replace may contain line breaks, and thus we can say it can be multi-line. Character "|" (pipe) represents a new line. If you want to search for "|" then use "||" (two pipes).


3.13 Marked subtitles

This is useful for example if you are translating a file, and want to mark certain subtitles because you are not sure about their translation (or for any other reason). To mark all the selected subtitles, click the "Edit/Subtitles/Mark selected subtitles" menu ([Shift]+[Ctrl]+[M]). To unmark all the selected subtitles, click the "Edit/Subtitles/Unmark selected subtitles" ([Shift]+[Ctrl]+[A]).

You can jump to the next or previous marked subtitle by using the "Edit/Subtitles/Jump to next marked" ([Ctrl]+[F12]) and the "Edit/Subtitles/Jump to previous marked" ([Shift]+[Ctrl]+[F12]) menus.

This feature has other uses, too - it can work together with ViPlay. Explanation:
While you are watching a movie in ViPlay, you can use a custom key (e.g. "M") to mark the subtitle that is currently being displayed (or the last subtitle that has been displayed, if any). When you are watching the movie in ViPlay and you see a wrong subtitle (spelling mistake, too long duration, over two lines, or any other mistake) and you press "M", it will be marked (internally). When the movie ends, ViPlay will ask you if you want to save a Subtitle Report File (*.srf). This file can later be loaded in Subtitle Workshop and it will automatically mark the subtitles you marked in ViPlay, so you can easily identify them and correct them after watching the movie.

You can also save a Subtitle Report File (*.srf) of the markings you made in Subtitle Workshop. To do this, click on the "File/Save marking" menu. The SRF file is created in the same folder the current subtitle file is in. The file is given the following name: <subtitle file name> + <subtitle file extension> + .srf (e.g. for C:\SubRip.sub, C:\SubRip.sub.srf is created). If a translation file is opened, a SRF file is saved for it too.

Yet another use of marked subtitles is to help with synchronizing TV shows subtitles. TV shows are usually split in a few segments - between the segments are the commercials breaks. Different recordings/releases of a TV show often handle the commercial breaks differently - they might be cut out in a different way, special transitions between the different segments might be added, or the commercials might even be included in the recording. However, often they are the only difference between the different recordings/releases. You can mark the first subtitle of each segment of the TV show to save the key points for synchronizing the subtitles for different recordings/releases of the TV show.

You can access various settings for subtitle marking in "Settings/Look/Marking".


Chapter 4: Settings explained

Here we will try to explain the meaning of all the options available in Settings.


4.1 General

Always on top
Maintains Subtitle Workshop's Main Window above all the other windows.

Allow more than one instance running
Allows more than one instance of the program running. If this option is unchecked and you open more files via explorer, they will all be opened in the same window. If that option is checked, they will be opened in separate windows.

Confirm when deleting subtitles
If this option is checked, each time you try to delete subtitles in the main list, Subtitle Workshop will show a confirmation message and ask you if you are really sure you want to make the deletion.

Interpret invalid files as plain text
Check this option and you will never get the "The file is an invalid subtitle or an unsupported format" error message, but instead, the file with actually be loaded (without timings) like if it was plain text. After this, you will need to set the timings manually.

Auto-search for movie
Each time you open a subtitle file, Subtitle Workshop will search for the corresponding movie file, and load it. This feature includes suffix detection (each suffix has to be separated by ".").
Example: if the file name of the subtitle is "Spiderman.English.srt" and there is a movie in that directory called "Spiderman.avi", it will be loaded.



Force working in time mode
If this option is unchecked, each time you open a subtitle in a frame based format, Subtitle Workshop will automatically switch to frames mode. If not, it will work in time mode, but you will be able to switch to frames mode manually.

Keep order of lines when reverse text
Useful for Right-to-Left languages like Arabic or Hebrew. Specifies if when you use the "Edit/Subtitles/Right to left/Reverse text" feature ([Ctrl]+[H]), you want to keep the order of the lines or reverse the text as a whole.

Select text on jump to next line
Specifies if you want to select the text in the "Text" or "Translation" text box, when jumping to the next line pressing [Shift]+[Enter].

Select text on jump to previous line
Specifies if you want to select the text in the "Text" or "Translation" text box, when jumping to the previous line pressing [Ctrl]+[Enter].

Tags Mode
Recent files limit
Limit the amount of recent files. If you don't want recent files, set the limit to 0. The maximum of recent files is 20.


4.1.1 Advanced
Two lines if longer than
This is the maximum line length that the function "Fast smart line adjust" would allow. Lines longer than this value will be broken in two lines by "Fast smart line adjust".

Toggle break point
If enabled, when applied over and over again on the same subtitle, "Fast smart line adjust" would toggle between two or three different break points (break on punctuation mark, breaks in the middle, unbroken line), if possible.

Break line after
This is the maximum line length that the function "Divide lines" would allow.

Smart line adjust automatically
Automatically use "Smart line adjust" on both parts in the "Divide lines" window.

Maximum line length
The maximum line length that will be set by the Set maximum line length feature.

Shift time
The time to shift subtitles forward/backward with the Shift subtitles feature.

Default subtitle duration
The subtitle duration of a newly inserted subtitle.

Default subtitle pause
The pause between a newly inserted subtitle and its previous (when using "Edit/Insert subtitle") or next (when using "Edit/Insert before") subtitle.

Increase step (time)
Specifies the step (in Time Mode) the values of the time controls (Show, Hide, Pause, and Duration) are increased/decreased with, when using the controls up/down arrows or the mouse wheel.

Increase step (frames)
Specifies the step (in Frames Mode) the values of the time controls (Show, Hide, Pause, and Duration) are increased with, when using the controls up/down arrows or the mouse wheel.

Keep min duration of
Set a minimum duration that Subtitle Workshop should try to keep for every subtitle when timings are modified. Currently, this is applied when the Show/Hide/Pause values are manually changed; when the "Set Show Time" and "Set Hide Time" buttons are used; when "Edit/Texts/Divide lines..." or "Edit/Texts/Fast divide lines" is used.

but don't allow overlaps
Don't allow overlaps when trying to keep the minimum duration.

Automatically round time values to
Set a value that Subtitle Workshop should automatically round all time values to. Currently this is applied when the "Set Show Time", "Set Hide Time", and "Move subtitle" buttons/menus are used; when "Edit/Texts/Divide lines..." or "Edit/Texts/Fast divide lines" is used.

Round time values on subtitle load
If this option is enabled, Subtitle Workshop will round all time values when a subtitle file is opened.

4.1.2 Charsets
Show in main form
Show the "Original charset" and "Translation charset" in the Left Panel of the Main Form, so that they could be quickly modified.

Original charset
Charset to display characters in the "Text" column and filed.

Translation charset
Charset to display characters in the "Translation" column and field (in Translator mode).

Notes charset
Charset to display characters in the "Notes" field in the Left Panel.

4.2 Formats

Default format
Specifies the default format to use in all the windows where there are formats lists (e.g. "Join subtitles", "Split", etc).

Formats to show in the "Save as" window
Only the checked formats listed here will be shown in the "Save as" dialogue. Useful if you only work with a few formats and you don't want to waste time looking for the desired format in a list that contains more than 60 items.

Show custom formats
Specifies if you want to show the custom formats from the "CustomFormats" folder in the "Save as" window.

4.3 File types

Add "Open with Subtitle Workshop" to shell context menu
Adds "Open with Subtitle Workshop" to the context menu that pops up when you right-click a file in Windows. Currently this works only for 32-bit Windows.

Register extensions on start
Associate the desired subtitle extensions when Subtitle Workshop is executed.

Associate subtitle extensions with Subtitle Workshop
If enabled, the selected subtitle extensions in the list below will be associated with Subtitle Workshop. If disabled, no subtitle extension will be associated with Subtitle Workshop. Every file with an extension that is associated with Subtitle Workshop will be automatically opened with Subtitle Workshop when double-clicked, and the file's icon will be Subtitle Workshop's main icon.

4.4 Save

Ask to save on exit program/close subtitle
If the changes in the current subtitle file are not saved, Subtitle Workshop will display the "File has changed. Do you want to save the changes?" message when you try to exit the program, close the subtitle file, or open a new file.

Save work automatically every X minutes
How often should Subtitle Workshop silently save the modified subtitle file automatically.

Save as backup
Saves the original/translated file as a backup (FileName.ext.bak) instead of overwriting the original/translated file.

Ask to save new subtitles
Turn on or off the prompt to save new files that are still not saved.

Save empty subtitles
If this option is enabled, when saving subtitle files, instead of deleting all empty subtitles, Subtitle Workshop will save them with the text "- empty subtitle -". When the file is later opened in Subtitle Workshop again, the text in those lines will be automatically deleted and they will become empty again.

Output settings
Opens the "Output settings" window.

4.5 Video preview

All the options listed here will work only if you are in Video Preview Mode.

Double click and shift-double click in a subtitle
Select what Subtitle Workshop should do when you double click a subtitle in the Subtitles List, and when you double click a subtitle in the Subtitles List while holding the [Shift] key. The available options are three:
  1. Focus text box - pass the focus to the "Text" box, or, if you are in Translator Mode, to the "Translation" box.
  2. Go to subtitles time in video - jump directly to the Show Time of the subtitle in the video.
  3. Go N seconds before subtitle in video - jump the "Seconds to jump" value before the Show Time of the subtitle in the video.
Rewind and forward times
The time to rewind/forward when pressing the "Rewind" and "Forward" buttons in the Video Controls Area.

Default altered playback rate
The percentage of playback rate to apply when pressing the "Alter playback rate" button in the video controls bar.

Vertical video align
Align the video vertically in the middle of the Video Preview Panel.

Enter Full Screen on double click
Enable/disable Full Screen toggle with a left mouse button double click. Disabling it might be useful when playing/pausing the video with a left mouse click is used a lot, to avoid unnecessary Full Screen toggle.

Play video on load
Specify whether to play the video file automatically when it's loaded or not.

Setting Show and Hide times
4.5.1 Subtitles
Font, color, background, outline, and shadow modifications can be seen in the "Sample" subtitle.

Draw outline
Enable/disable an outline to be drawn for the subtitles in the Video Preview Panel. Set the outline width in the "Outline width" box. Set the outline color in the box on the right of the "Outline width" box.

Draw shadow
Enable/disable a shadow to be drawn for the subtitles in the Video Preview Panel. Set the shadow width in the "Shadow width" box. Set the shadow color in the box on the right of the "Shadow width" box.

Try transparent background
Display the subtitles in the Video Preview Panel transparently over the video. This option will work most of the times, but if it doesn't work, you can check the following option:

Force using regions (may be slow)
If checked, the subtitles will be transparent, and should never fail. Use it only if you don't get transparent subtitles only with the previous option enabled and you really want them. When this option is enabled, you can set the transparent color in the box on the right. The default transparent color is an almost-black gray ($010101). This color should never be the same as the subtitle text color, the background color, the outline color, or the shadow color!

Align left when subtitles contain a new line starting with "-"
Display subtitles containing dialogue with left alignment (but still in the center of the screen, of course).

Relative font size
Make the font size relative to the Video Preview Panel size.

Keep subtitle on video
Align the subtitles to the bottom of the video, instead of to the bottom of the Video Preview Panel.

Try anti-aliasing
Add anti-aliasing for TrueType fonts when it is not enabled in Windows. "Force using regions" must be off.

Font...
Set the font (and its size) the subtitles will be displayed with.

Color...
Set the text color the subtitles will be displayed with.

Background...
Set the background color the subtitles will be displayed with (has no effect when transparent background is used).

4.6 External preview

This feature makes possible to preview subtitles in your favourite movie player.
4.6.1 General
Exe of the video player
The executable file of the video player you want to use for external preview. Remember that the video player must support command line and external subtitles.

Detect associated program
Press this button if the movie player you want to use is associated with .AVI files, and you don't know where to find the executable file.

Ask for a different video each time
Subtitle Workshop will ask you to open a video file each time you do the external preview.

Always test with same video
Subtitle Workshop will always use the same video for external preview, so it won't ask you anything and will open the movie player directly.

4.6.2 Advanced
Save temporary file in original format
Select this if you are sure that the video player supports the subtitle format you are handling.

Save temporary file in custom format
If the video player doesn't support the subtitle format you are handling, but supports a minimum of one of the formats that Subtitle Workshop supports, then check this check box and select a format in the list.

Parameter to send the video player
This is very important. Here you have to specify how to tell the video player which subtitle and which video file to open. VIDEO_FILE represents the video file and SUBT_FILE the subtitle file. Look at the help file of the video player to see the specification on the command line parameters.

For details, refer to External preview.

4.7 Look

4.7.1 Program
Font to use in the program & font size
If you change this, the font of Subtitle Workshop's interface and/or it's size will be changed. Use these if the font of Subtitle Workshop is too small for you, or if you don't like the default font.

"Text" and "Translation" fields align
Set the text alignment you want for these two fields.

Highlight tags in "Text" and "Translation" fields
When enabled, all tags in the "Text" and "Translation" fields appear in the color of the box on the right. Click that box to change the color.

Smart main window and subtitle list resize
When this option is enabled:
1) When the columns of the Subtitles List are resized, the width of the Main Window of Subtitle Workshop is automatically adjusted so that there are no horizontal scrollbars in the Subtitles List.
2) When Translator Mode is entered or exited, and when the Left Panel is shown or hidden, the width of the Main Window of Subtitle Workshop is automatically adjusted.

Resize Subtitles List columns when resizing form
When the Main Window of Subtitle Workshop is resized, the Text and Translation columns of the Subtitles List are resized, so that there are no horizontal scrollbars in the Subtitles List.

Use Office XP style menu
Use a different style for the Main Menu and the Context menus in the Main Form. If you turn this off, the default Windows style will be used.

Use gradient menu
Draws a gradient in the left of the menus.

4.7.2 List
Show grid lines
Shows lines between the rows and columns of the Subtitles List in the Main Window.

Apply style to subtitles
Only will take effect if a subtitle contains tags (bold, italic, underline or color). If this option is checked, Subtitle Workshop will draw the subtitle in the list with the appropriate style/color.

Mark untranslated subtitles with color
Draws the text of the untranslated subtitles with a particular configurable color, so they can be easily identified.

Mark untranslated subtitles with background
Draws the background of the untranslated subtitles with a particular configurable color, so they can be easily identified.

Show horizontal scroll bar
Uncheck this option and you will never get the horizontal scrollbar in the main list.

Right click selection
Enable row selection with a right mouse button click.

Row height
Adjust the height of the rows in the Subtitles List (in pixels).

Text margin
Adjust the margin inside the cells of the Subtitles List (in pixels).

Selection
Columns
4.7.3 Marking
Marking with color
Set the text color for marked subtitles.

Marking with background
Set the background color for marked subtitles.

Columns to mark
Select which columns should be marked: Num, Pause, Show, Hide, Duration, Text.

Marking priority
Set the marking priority compared to Error Marking:
"Low (before error marking)" - Subtitle Workshop will mark marked subtitles first, then the errors.
"High (after error marking)" - Subtitle Workshop will mark errors first, then the marked subtitles.

Marked subtitle color in video preview
Set the text color marked subtitles will be displayed with in the Video Preview Panel subtitles.

Marking file
.srf files settings:
"Automatically load marking file" - if there's a .srf file with the same name as the subtitle file opened, in the same folder, it will be automatically loaded. Subtitle Workshop will look for a file with the following name: <subtitle file name> + <subtitle file extension> + .srf. If not found, then it will also look for <subtitle file name> + .srf.


Chapter 5: Tools

Must-have features in every subtitle tool.

5.1 Spell check

This spell check uses Microsoft Word's spell check engine, connecting to it through OLE technology. Thus, at least Microsoft Word 97 is required. To spell check a subtitle, just load it and press the "Tools/Spell check" menu ([F7]). All the errors and suggestions will be shown using Word's default windows. The spell check should support any installed dictionary.

Note: this feature may give errors (TOleExeption) some times, this is not because of Subtitle Workshop, but because of Word. Still it works pretty well most of the time.


5.2 Batch convert

This feature lets you convert a large number of subtitle files in any format to a single format, and then save them in a designated folder with just a few clicks.

Click the "Tools/Batch convert..." menu ([Ctrl]+[M]). After this, you should follow these steps:
  1. Select what file extensions to search for - all the possible extensions are shown on the left.
  2. Select the search path (the folder in which the subtitle files you want to convert are).
  3. If you want to include subfolders in the search, check the "Include subfolders" check box.
  4. If you want Subtitle Workshop to make an exhaustive format check, check the "Exhaustive format check" check box. If this option is off, Subtitle Workshop will skim the file to see if it is a valid file and in what format it is. Skimming usually works very well, and it gives an excellent speed. If you want to perform throughout tests through the file, with an effectiveness of 100%, then use exhaustive check. Exhaustive check is remarkably slower than standard check.
  5. Select the output directory (the path in which the converted files will be saved)
  6. Select the output format.
  7. Select the Default FPS for the frame based files (if there are such).
  8. Press the "Next" button.
After pressing the button, Subtitle Workshop will search for valid subtitle files in the search path you chose.

When the search is finished, you will see a list of all found files, format, FPS (for frame based subtitles - this value should be by default, the same as "Default FPS" you set) and size (in Kb).
You can add new files to the list, or remove files from it. You can also change the FPS of frame based files by selecting them and changing the value of the box that is on the right of the "Clear" button.

Finally, press the Convert button and the conversion will start. When it is finished, Subtitle Workshop will generate a log (*.log) file, reporting all possible errors and all the successes.


5.3 Split subtitles

There are two possible splits:
  1. Simple - splits a subtitle file in two parts
  2. Advanced - splits a subtitle file in an indefinite number of parts
Use the one that best fits your needs.

Simple split
You first have to choose where to split the file - you have 5 options:
  1. Selected item
    The subtitle file will be split right after the item that is selected in the Subtitles List of the Main Window.
  2. Item number
    The subtitle file will be split in the subtitle number you select.
  3. Given time
    The subtitle file will be split in the first subtitle that has a Show Time greater than the time you select.
  4. Given frame
    The subtitle file will be split in the first subtitle that has a Show Frame greater than the frame you select.
  5. End of video
    The subtitle file will be split in the first subtitle that has a Show Time greater than the time in which a video ends (the video's duration).
After selecting where to split, select the file names (without the extension, it will be added automatically), the output format, and press the Split button.

Advanced split
Switch to the "Advanced" page, and then select the number of parts you want to make. You have to select if you want to make the parts equal in time (length), in lines or if you want to split at the end of multiple videos.
If you want to split at the end of multiple videos, you need to select a video for each part. To do so, double click in each part in the list, starting with the first one. You can't select a video for the last part, since it will be calculated automatically.

Leave the "Auto-name the parts" check box checked, if you want Subtitle Workshop to set the file names of the parts automatically. If you want to do it manually, uncheck the check box, select the desired part, and press [F2] to type the name.

Check "Recalculate time values", if you want Subtitle Workshop to automatically set a delay to the second subtitle, so you don't have to do it manually after splitting. Finally, select the output path and the output format, and press the Split button.


5.4 Join subtitles

With Subtitle Workshop you can join two or more subtitle files into one. Those subtitle files may be in different formats, time or frame based, and if frame based - they even may have different FPS!
Click the "Tools/Join subtitles..." menu ([Ctrl]+[J]).

Now press the Add button and add all the files you want, in the correct order. If you made a mistake in the order, you can drag the files with the mouse and put them where you want. If the file is a frame based subtitle, you can modify its FPS by selecting it and modifying the value of the combo box that is at the right of the "Clear" button. You can do that operation to all selected frame based subtitles at once.
Optionally, you can set a movie fragment for each part (except, of course, for the last), so that Subtitle Workshop could make all changes in the timings of the subtitles automatically. This way you won't need to make any changes to the resulting file. To select a movie fragment for each part, select it and click the Set movie fragment button. If you made a mistake, select that part and press the Delete movie fragment button. Now you need to select the output format, and if it is a frame based one, the output FPS. If you want to load the resulting file in Subtitle Workshop afterwards, check the "Load file after joining and saving" check box. Check the "Recalculate time values", if you want Subtitle Workshop to automatically set the delay to all the subtitles from the second one onwards, so that you wouldn't have to do it later manually. This option will not work, if the parts are associated to movie fragments. Finally, press the Join button.


5.5 Information and errors

This is one of the features that make Subtitle Workshop unique - despite of other program's attempt to imitate it, Subtitle Workshop's Information and Errors still has the best performance, flexibility and options.

5.5.1 Errors & fixes explained
Information and Errors can check for and fix a large variety of common errors in subtitles. Here we will try to review all the possible errors and the way(s) they are automatically fixed. Before we do, let's see what types of errors are going to be checked for and fixed. The priorities are:
  1. Prohibited characters
  2. Text before colon (":")
  3. Hearing impaired
  4. OCR Errors
  5. Lines without letters
  6. Empty subtitles
  7. Repeated subtitles
  8. Unnecessary tags
  9. Overlapping
  10. Bad values
  11. Unnecessary dots
  12. Repeated character
  13. "- " in subtitles with one line
  14. "- " on first line
  15. Unnecessary spaces
  16. Space after custom characters
  17. Space before custom characters
  18. Subtitle over two lines
  19. Dialogue on one line
  20. Too long duration (only check)
  21. Too short duration (only check)
  22. Too long lines (only check)
  23. Too short pause (only check)
  24. Too much characters per second (CpS) (only check)
Errors 1 to 7 are first, because when fixing those types of errors, the subtitle can get deleted under certain circumstances, so other fixes before that would be pointless.


Lines without letters
Deletes subtitle lines that don't contain letters (a-z, á-í, etc). Example:
Show Time Hide Time Text
00:00:00,250 00:00:01,350 This is the text 1
!!!!!!!
00:00:00,780 00:00:02,150 ¿?!¡
This is the text 2
Subtitle Workshop will delete the second line in the first subtitle and the first line in the second subtitle, because they do not contain any letters (don't misunderstand, "letters" is not the same as "characters").


Empty subtitles
An empty subtitle can be:
  1. A subtitle that contains no text at all (blank text).
  2. A subtitle that doesn't contain any letter or number, e.g. the text "- !!!!"
In both cases, Subtitle Workshop will delete the subtitle.


Repeated subtitles
This is very common in OCRs. Example:

Show Time Hide Time Text
00:00:01,000 00:00:01,010 Come on, let's book.
00:00:01,010 00:00:02,000 Come on, let's book.


Repeated subtitles are characterized by two things:
  1. The text is exactly the same.
  2. Usually, one subtitle has a very short duration, most of the times it is the first one (like in the example) but can be the other way round.
In the example above, the Show Time of the second subtitle is exactly the Hide Time of the first, this is very common, but it's not like this always. That's why the "Tolerance for repeated subtitles" value is configurable - that is the maximum allowed difference between the Hide Time of the first subtitle and the Show Time of the second subtitle, for a subtitle to be detected as a repeated subtitle. After fixing, the subtitle will look like this:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 Come on, let's book.

The Show Time will be the Show Time of the first subtitle, and the Hide Time will be the Hide Time of the last subtitle.


Prohibited characters
Finds subtitles that contain prohibited characters and deletes those entire subtitles.


Text before colon (":")
The text before colon is usually for hearing impaired people. Most of the times it represents the name of the person who is currently speaking.

Example:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 MAN:|She feel the same about you?
00:00:03,000 00:00:04,000 JERRY:|I don't know.

In 80% of the cases, the text before colon will be all in CAPITAL LETTERS, so you can enable the "Only if text is in capital letters" option, and thus avoid unwanted deletions of regular text in subtitles like: "I'm going to tell you something:|Don't ever do that again". After fixing, the subtitle will look like this:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 She feel the same about you?
00:00:03,000 00:00:04,000 I don't know.

The detection for the colon will not detect it if it is between two numbers, e.g. "12:30", and thus it will avoid problems with times.


Hearing impaired subtitles
Hearing impaired subtitles are whole subtitles, or just a part of a subtitle, that are exclusively for people with impaired hearing. People with unimpaired hearing don't need "noises" or "sounds" subtitles. Hearing impaired subtitles are usually enclosed in parenthesis ("(" and ")" and/or "[" and "]").

Example:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 - [Boy] You want me to kill him for you?
00:00:03,000 00:00:04,000 Yeah. Would you?
00:00:05,000 00:00:06,000 [Shutter Whirring, Clicking Off]


First subtitle contains a part for hearing impaired, and third subtitle is all for hearing impaired. After fixing, the subtitle will look like this:

Show Time Hide Time Text
00:00:01,000 00:00:02,000 You want me to kill him for you?
00:00:03,000 00:00:04,000 Yeah. Would you?


Unnecessary tags
The following tags are considered unnecessary (the pipe (|) character represents a new line) and are removed:
  • <i></i>
  • <i><i>
  • </i><i>
  • </i></i>
  • </i> <i>
  • <i> </i>
  • <i>|</i>
  • </i>|<i>
  • <b></b>
  • <b><b>
  • </b><b>
  • </b></b>
  • </b> <b>
  • <b> </b>
  • <b>|</b>
  • </b>|<b>
  • <u></u>
  • <u><u>
  • </u><u>
  • </u></u>
  • </u> <u>
  • <u> </u>
  • <u>|</u>
  • </u>|<u>


  • Overlapping subtitles
    This error is marked when a subtitle is shown on the screen before the previous subtitle is hidden. That is, when the Hide Time of a subtitle is greater than the Show Time of the next one. Example:

    Show Time Hide Time Text
    00:00:00,250 00:00:01,450 This is text 1
    00:00:01,150 00:00:02,150 This is text 2

    The second subtitle is shown before the first one is hidden. Subtitle Workshop will fix this in a way that depends on the lengths of the texts of the subtitles. There are three possible solutions:
    1. If the difference between the lengths of the texts of the subtitles is less than 5, the duration of each subtitle will be set equal.

      This is the case for the example above, the solution for the overlapping is this one, since the lengths of the texts are equal.
      Subtitle Workshop will fix the subtitles like this (if the Default Pause is 1 millisecond):

      Show Time Hide Time Text
      00:00:00,250 00:00:01,200 This is the text 1
      00:00:01,201 00:00:02,150 This is the text 2
    2. If the text of the first subtitle is 5 or more characters longer than the text of the second one, the second subtitle's time will be cut. Subtitle Workshop will fix the example like this (if the Default Pause is 1 millisecond):

      Show Time Hide Time Text
      00:00:00,250 00:00:01,450 This is the text 1. More than four extra characters.
      00:00:01,451 00:00:02,150 This is the text 2
    3. If the text of the second subtitle is 5 or more characters longer than the text of the first one, the first subtitle's time will be cut. Subtitle Workshop will fix the example like this (if the Default Pause is 1 millisecond):

      Show Time Hide Time Text
      00:00:00,250 00:00:01,450 This is the text 1
      00:00:01,451 00:00:02,150 This is the text 2. More than four extra characters.

    Bad values
    Bad values is when the Show Time of a subtitle is greater than its Hide Time.

    Example:

    Show Time Hide Time Text
    00:00:02,000 00:00:01,000 This is the text

    Subtitle Workshop can fix that by inverting the time values, so the subtitle would be:

    Show Time Hide Time Text
    00:00:01,000 00:00:02,000 This is the text



    Unnecessary dots
    This option replaces four or more consecutive dots ("....") to only three, followed by a space when necessary.

    Example:

    Show Time Hide Time Text
    00:00:01,000 00:00:02,000 Yeah.... Should taste it.....

    Would result in:

    Show Time Hide Time Text
    00:00:01,000 00:00:02,000 Yeah... Should taste it...



    Repeated characters
    Finds the characters you wish, when they are successively repeated two or more times. For example, if you have "!" as a repeatable character, it would find:

    Show Time Hide Time Text
    00:00:01,000 00:00:02,000 Do it, now!!!!!!!!!!!!!!!!!!!!!!

    and fix it to:

    00:00:01,000 00:00:02,000 Do it, now!


    It works the same way for every repeatable character. The default characters are "-¡!¿?";\/_[]=", but you can add/remove characters in "Tools/Information and Errors/Settings/Advanced".


    OCR Errors
    As different languages have different OCR errors, OCR scripts can be used to detect them. For more information on the scripts, refer to 5.5.5 OCR Scripts.


    "-" in subtitles with one line
    There is no sense in having subtitles with one line starting with "-" (open dialogue), since only one person speaks in them. Thus, if you enable this option, Subtitle Workshop will delete the "-", if the subtitle contains only one line.


    "-" on first line
    Check for a dash on the first line of subtitles with more than one line (e.g. the Bulgarian standard for dialogue in subtitles is to have a dash only on the second line). Those errors can also be automatically corrected. There is an "Only if there is no "-" on second line" suboption to look only for multiline subtitles starting with a dash, but without other dashes (i.e. without dialogue) - e.g. suitable for English subtitles, where dashes are used on both lines of a dialogue, and errors shouldn't be marked for subtitles that have a dash at the start of the first line AND a dash at the start of the second line.


    Dialogue on one line
    Check for dialogue on one line (in fact for a dash after a dot, a question mark or exclamation mark), something that isn't allowed in some standards. Those errors can be automatically corrected.


    Space after custom characters
    Adds a space (if there isn't one) after any of the characters in "Space after characters" in "Tools/Information and Errors/Settings/Advanced". Useful for example to add a space after a dialogue dash:

    -This is it.
    -Really?


    To:

    - This is it.
    - Really?


    This feature has a bit of composed words detection, so it doesn't add a space after the character in words like "multi-line".


    Space before custom characters
    Adds a space (if there isn't one) before any of the characters in "Space before characters" in "Tools/Information and Errors/Settings/Advanced". Useful for example for French language, to add spaces before "?", "!" and ":".


    Unnecessary spaces
    Remove the unnecessary spaces from the text of the subtitles. Currently, the following types of unnecessary spaces can be removed:
    1. Enters and spaces at the beginning and end
    2. Spaces between enters (left and right)
    3. Double spaces and enters (double enter = blank line)
    4. Spaces in front of punctuation marks
    5. Spaces after "¿" and "¡"
    6. Spaces before "?" and "!"
    7. Spaces between numbers
    As different languages may require different spacings, you can select which of those types of unnecessary spaces to be checked for and removed in "Tools/Information and Errors/Settings/Unnecessary spaces".


    Subtitles over two lines
    Checks if a subtitle has three or more lines, and uses Smart line adjust to fix it.


    Too long/short duration
    Subtitle Workshop can identify if the duration of a subtitle is longer/shorter that a specified minimum/maximum value, and report it to you. Subtitles with too short duration can be unreadable and subtitles with too long duration can be annoying. Use Duration limits or Automatic durations to fix this type of error (or fix it manually).


    Too long lines
    Detects if a subtitle contains lines that are longer than a specified number of characters. Too long lines can exceed the width of the screen in some video players and this is potentially dangerous. Use Smart Line Adjust or Divide lines to fix this type of error (or fix it manually).


    Too short pauses
    Subtitle Workshop can identify if the pause between two subtitles is shorter than a specified minimum value, and report it to you. Use Set pauses to fix this type of error (or fix it manually).


    Too many characters per second (CpS)
    Subtitle Workshop can identify if the number of characters per second (CpS) in a subtitle is greater than a specified maximum, and report it to you. Use Duration limits or Automatic durations to fix this type of error (or fix it manually).


    5.5.2 Information & errors window
    Information & errors list
    The Information and errors list displays a list of all subtitles with errors and warnings for the current subtitle file. The list will also display all subtitles with fixed errors after the "Fix errors" button is pressed. It will also display all subtitles matching Custom Infos, if custom infos are added.

    "Check" button
    Refreshes the list - checks for errors, warnings, and custom info in all subtitles in the current subtitle file.

    "E" (Errors), "W" (Warnings), "F" (Fixed), and "CI" (Custom info) buttons
    They show or hide the corresponding type of information in the Info & Errors List.

    "<" and ">" buttons
    They jump to the previous / next row in the Info & Errors List.

    "Fix errors" button
    Fixes errors where possible, in all subtitles in the current subtitle file.

    "Select" button
    Selects all subtitles in the Subtitles List in the Main Window, that are currently displayed in the Info & Errors List.

    "+ Select" button
    Adds to the current selection in the Subtitles List of the Main Window all subtitles that are currently in the Info & Errors List.

    "- Select" button
    Removes from the current selection in the Main Window all subtitles that are currently in the Info & Errors List.

    "Export to file" button
    Exports the Info & Errors List content to a text file.

    Error Types Area
    This area can be shown/hidden with the new "Error types" button.
    This area contains a list of all error types and how many of each error type the current subtitle file contains.
    The checkbox in front of each error type will show/hide all instances of this error type in the Info & Errors List. The "All" button checks them all, the "None" button unchecks them all, and the "Inverse" button makes an inverse selection.
    The current state of the checkboxes can be saved in an Error Types Set under an assigned name. This makes it easy to switch between different sets of states. The desired name of the Error Types Set must be entered in the dropdown box and then the [ENTER] key or the "Save error types set" button must be pressed to save an Error Types Set. An Error Types Set can be loaded by selecting it from the dropdown box. An Error Types Set can be deleted by loading it and then clicking on the "Delete error types set" button.

    Custom Info Area
    This area can be shown/hidden with the new "Custom info" button.
    Here, different specific rules can be set to look for certain subtitles. The subtitles that fit those rules will be displayed in the Info & Errors List as "Custom info" types of rows, and with a description containing the rule or the rule's caption.
    There are no Custom Info Fields in the Custom Infos List at first.
    Add a new Custom Info Field with the "+" button or with its dropdown menu (there are several Custom Info rule types).
    There's a checkbox in front of each Custom Info Field to enable or disable that rule (show/hide subtitles in the Info & Errors List that fit that rule).
    The "Delete" button of a Custom Info Field deletes that field.
    The number of the subtitles that fit the rule of a Custom Info Field will be displayed on the left of the "Delete" button of the field.
    The following Custom Info rule types are available: The "All", "None", and "Inverse" buttons work in the same fashion as the "All", "None", and "Inverse" buttons in the Error Types Area.
    The "Save custom info set" and "Delete custom info set" buttons, and the custom info set dropdown box can be used to save sets of Custom info fields, just like the Error types sets in the Error Types Area.
    There is a vertical slider above the Custom Info Area, that can be used to resize the height of the Custom Info Area.


    5.5.3 Settings explained
    To access the Information and Errors Settings, press the "Tools/Information and errors/Settings..." menu ([Alt]+[I]). Additionally, you can access the Settings from the Information and Errors window, by pressing the "Settings" button.
    Now let's review all the options you will find.

    General options
    Show confirmations in main form on fix
    Show a confirmation window every time a subtitle is about to be deleted due to an error fix. Mark errors in main form's list
    When this option is enabled, Subtitle Workshop will mark the errors in the Subtitles List in the Main Window. Marking the errors in the Subtitles List makes it easy to recognize them.
    You can specify a marking style for each error type in the "Mark" tab options.
    If the marked error is still difficult to identify visually (for example it is very hard sometimes to tell that a subtitle has unnecessary spaces or unnecessary dots), you can put the mouse cursor over the subtitle with errors for half a second and a tooltip with a description specifying exactly what types of errors it has will pop up.

    Mark errors on load subtitle
    If this option is enabled, it performs an automated check for errors each time you load a subtitle file. This option is going to take effect only if "Mark errors in main form's list" is enabled.

    Automatically recheck errors
    Perform automatic error recheck (and marking) after every action (change) in Subtitle Workshop!

    Fix errors on load subtitle
    Automatically fix all the errors when a subtitle file is loaded.

    Fix one unit overlap at load
    Fix subtitles overlapping when a subtitle file is loaded. Example:

    Show Time Hide Time Text
    00:00:01,000 00:00:02,000 This is subtitle 1
    00:00:02,000 00:00:03,000 This is subtitle 2

    Would be changed to:

    Show Time Hide Time Text
    00:00:01,000 00:00:02,000 This is subtitle 1
    00:00:02,001 00:00:03,000 This is subtitle 2


    OCR Script:
    Specifies the name of the OCR Script you are currently using. This script has to be in the "OCRScripts" subfolder of Subtitle Workshop's main directory. The scripts list consists of all the ".ocr" files found in the "OCRScripts" subfolder. The "Edit" button will open the .ocr file in Notepad, so you can edit it - add or remove OCR Errors.

    Indicate too long lines in Text and Translation labels
    Indicate too long lines in the selected subtitle in the Subtitles List, by changing the text and background color in the Text and Translation labels.

    Indicate too short duration in Duration box
    Indicate too short duration in the selected subtitle in the Subtitles List, by changing the text and background color of the "Duration" box.

    Indicate too long duration in Duration box
    Indicate too long duration in the selected subtitle in the Subtitles List, by changing the text and background color of the "Duration" box.

    Indicate too short pause in Pause box
    Indicate too short pause in the selected subtitle in the Subtitles List, by changing the text and background color of the "Pause" box.

    Indicate overlapping subtitles in Pause box
    Indicate the selected subtitle in the Subtitles List is overlapping with the previous subtitle, by changing the text and background color of the "Pause" box.

    Indicate bad values in Show and Hide boxes
    Indicate bad values in the selected subtitle in the Subtitles List, by changing the text and background color of the "Show" and "Hide" boxes.

    Indicate subtitles over two lines in lines counter label
    Indicate more than two lines in the selected subtitle in the Subtitles List, by changing the text and background color of the lines counter label.

    Advanced options
    Repeatable characters
    A list of characters that shouldn't be consecutively repeated in the subtitles text. Don't separate the characters in the list with a space or any symbols. This is the characters list for the "Repeated characters" error type checking, marking, and fixing.

    Prohibited characters
    A list of characters that shouldn't be in any subtitle. Don't separate the characters in the list with a space or any symbols. This is the characters list for the "Prohibited characters" error type checking, marking, and fixing.

    Tolerance for repeated subtitles
    The maximum allowed difference between the Hide Time of the first subtitle and the Show Time of the second subtitle, for a subtitle to be detected as a repeated subtitle. This is the tolerance for the "Repeated subtitles" error type checking, marking, and fixing.

    Space after characters
    A list of characters that should always be followed by a space character. Don't separate the characters in the list with a space or any symbols. This is the characters list for the "Missing space after custom characters" error type checking, marking, and fixing.

    Space before characters
    A list of characters that should always be preceded by a space character. Don't separate the characters in the list with a space or any symbols. This is the characters list for the "Missing space before custom characters" error type checking, marking, and fixing.

    Too long duration over
    The value above which a subtitle's duration is considered too long. This is the value for the "Too long duration" error type checking, marking, and fixing.

    Too short duration under
    The value below which a subtitle's duration is considered too short. This is the value for the "Too short duration" error type checking, marking, and fixing.

    Too long line
    The number of characters that if a subtitle line's length is equal to or greater than, the line is considered too long. This is the value for the "Too long lines" error type checking, marking, and fixing.

    Too short pause under
    The value below which the pause between two subtitle is considered too short. This is the value for the "Too short pauses" error type checking, marking, and fixing.

    Too many CpS over
    Specifies the maximum number of characters per second for a subtitle. Characters per second that are above this value will be considered too many. This is the value for the "Too many characters per second" error type checking, marking, and fixing.

    Normal CpS box colors
    The text and background colors of the CpS Infobox when the CpS does not exceed the maximum CpS allowed. Those colors are used when "Tools: Information and errors: Show CpS boxes" is on.

    Too many CpS box colors
    The text and background colors of the CpS Infobox when the CpS exceeds the maximum CpS allowed. Those colors are used when "Tools: Information and errors: Show CpS boxes" is on, or when the "Mark too much CpS with CpS boxes" option is enabled in the "Mark" tab.

    Display percentage in CpS box
    The CpS Infoboxes will contain the percentage of the currently used number of characters per second out of the allowed maximum (e.g. if the maximum is 15 CpS, a subtitle with duration of 2 seconds, will use 100%, if it contains 30 characters, or 80% if it contains 24 characters, or 50% if it contains 15 characters, or 200% if it contains 60 characters, etc.).

    Display current CpS in CpS box
    The CpS Infobox will contain the subtitle's current CpS (its number of characters divided by its duration).

    Display minimum time in CpS box
    The CpS Infobox will contain the minimum duration allowed (for the current number of characters) that will keep the subtitle's CpS within the allowed maximum.

    Display maximum characters in CpS box
    The CpS Infobox will contain the maximum number of characters allowed (for the current duration) that will keep the subtitle's CpS within the allowed maximum.

    Check for
    Choose what error types Subtitle Workshop should check for.
    Mark
    Choose what error types Subtitle Workshop should mark - and how. Each error can have its own unique marking style, or could use a default error marking style.
    "Mark errors in main form's list" in the "General" tab should be enabled for the Marking System to work.
    To set an error marking style:
    1. Select which columns to be marked for the error type, by clicking on one or more of the N, P, S, H, D, and T buttons (N="Num", P="Pause", S="Show", H="Hide", D="Duration", T="Text");
    2. Select the style of the text for the selected (in step 1) columns for the error type, by clicking on one or more of the B, I, U, and S buttons (B="Bold", I="Italic", U="Underline", S="Strikethrough");
    3. Select the text and background colors for the selected (in step 1) columns for the error type, in the two color boxes on the right (first box is the text color, second box is the background color).
    Unchecked error types won't be marked at all.
    "Mark too much CpS with CpS boxes" - instead of using yet another style of error marking, enable this option to mark the "Too many CpS" error by displaying a CpS box with different colors over a subtitle. The text and background colors, as well as the contents of the CpS boxes, can be set in the "Advanced" tab. Useful and recommended.
    "Default error marking" will be applied for all checked errors that have no selected columns (i.e. in order to mark an error type with this default style, don't select any columns for it).
    The "Set Default Styles" button sets the default set of Error Marking Styles.
    Currently, the order the errors are marked in the Subtitles List of the Main Window is the following:
    1. The errors with the default marking style are marked.
    2. The errors with unique marking are marked in the order they appear in the "Mark" tab.


    Fix
    Choose what error types Subtitle Workshop should fix.
    Unnecessary spaces
    Choose what types of unnecessary spaces to check for and fix.


    5.5.4 Various information window
    It displays various information about the current subtitle file. Use the "Refresh info" button to refresh the various information after changes were made to the subtitles.
    5.5.5 OCR Scripts
    The OCR Scripts are nothing but series of Find-and-Replace specifications in a friendly, close to HTML syntax. What makes them powerful? The commands that are available. The possibility for using regular expressions makes it possible to find and replace almost anything in any language. A very important thing to know about OCR Scripts is that all commands are performed consecutively, that is, in the order they are written.
    Let's now see a small example of an OCR Script:
    <SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ñÑáéíóúÁÉÍÓÚäëïöü">
    	<!-- The comments are set just like in HTML -->
    	<ERROR Find="[A-ZÁ-Ú](l)" ReplaceBy="I">
    	<ERROR Find="[a-zá-ú](I)" ReplaceBy="l">
    	<ERROR Find="\d( :)" ReplaceBy=":">
    	<ERROR UseREOnlyToFind="False" Find=",{2,}" ReplaceBy="...">
    </SWOCR>
    
    WordChars represents all the characters that can form a word in your language. The default is the string shown above. If this parameter is not passed, the default will be used. These are some of the most common OCR errors in English language. In OCR Engines, "l" (lowercase "L") and "I" (uppercase "i") look almost identical and they are often misplaced. Another very common error is the inclusion of spaces before colon. In the short example above, Subtitle Workshop will use regular expressions to search for the errors. If you don't need to use regular expressions, you should take a look at the parameters that define how you want the search to be executed:

    UseRE
    UseRE="True" or UseRE="False". The default value is True. If it is set to False, then regular expressions will not be used for the search. Set it to False, only if you want to simplify the way find-and-replace commands are written, because when regular expressions are disabled, the OCR scripts have lesser power.

    UseREOnlyToFind
    UseREOnlyToFind="True" or UseREOnlyToFind="False". The default value is True. To explain how this works, we need to see an example:
    <ERROR UseREOnlyToFind="True" Find="[a-z]at" ReplaceBy="dog">
    
    Applied to "The name of my cat is Max" will return "The name of my dog is Max", but
    <ERROR UseREOnlyToFind="False" Find="[a-z](at)" ReplaceBy="dog">
    
    Applied to "The name of my cat is Max" will return "The name of my cdog is Max".

    In the first situation, when the replace is made, the part that is a regular expression (in this case "[a-z]", matching "c") is also replaced.
    In the second situation, we only use the regular expression part ("[a-z]") to search for the text, but when the replace is made, the regular expression part is not replaced. We will only replace the part of the "Find=" text that is between parenthesis, that is, you need to write the part that is "constant" and won't vary between parenthesis. This is extremely useful for the OCR Scripts (take a good look at Default.ocr to understand it better).

    The following parameters are only available when "UseRE" is set to False:

    WholeWord
    WholeWord="True" or WholeWord="False". The default value is False. If set to True, it will find the "Find=" text, only if it is forming a Word.

    CaseSensitive
    CaseSensitive="True" or CaseSensitive="False". The default value is False. If set to True, the text search will be case sensitive.

    These are the most used commands, you can do a lot with them. But there are more:

    PreserveCase
    PreserveCase="True" or PreserveCase="False". The default value is False. If set to True, it will preserve the case of "Find" text when replacing with the "ReplaceBy" text. For example, if we have this error:
    <ERROR UseRE="False" Find="DOG" WholeWord="True" PreserveCase="True" ReplaceBy="CAT">
    
    As it is not case sensitive, Subtitle Workshop could find the text "Dog", not only the text "DOG". When replacing "Dog" with "CAT", it will copy the case of the text it found, so it will replace "Dog" with "Cat", not with "CAT".

    5.5.6 Syntax of Regular Expressions
    Introduction
    This document is taken from TRegExpr help file, an excellent Regular Expressions library for Delphi, by Andrey V. Sorokin.

    Regular Expressions are a widely-used method of specifying patterns of text to search for. Special metacharacters allow You to specify, for instance, that a particular string You are looking for occurs at the beginning or end of a line, or contains N recurrences of a certain character.
    Regular expressions look ugly for novices, but really they are very simple (well, usually simple ;) ), handy and powerful tool.

    I strongly recommend you to play with regular expressions. Let's start our learning trip!

    Simple matches
    Any single character matches itself, unless it is a metacharacter with a special meaning described below.

    A series of characters matches that series of characters in the target string, so the pattern "bluh" would match "bluh" in the target string. Quite simple, eh?

    You can cause characters that normally function as metacharacters or escape sequences to be interpreted literally by 'escaping' them, by preceding them with a backslash "\", for instance: metacharacter "^" match beginning of string, but "\^" matches the character "^", "\\" matches "\", and so on.

    Examples:
    foobar matches string 'foobar'
    \^FooBarPtr matches '^FooBarPtr'
    Escape sequences
    Characters may be specified using a escape sequences syntax much like that used in C and Perl: '\n' matches a newline, '\t' a tab, etc. More generally, \xnn, where nn is a string of hexadecimal digits, matches the character whose ASCII value is nn. If You need wide (Unicode) character code, You can use '\x{nnnn}', where 'nnnn' - one or more hexadecimal digits.

    \xnn char with hex code nn
    \x{nnnn} char with hex code nnnn (one byte for plain text and two bytes for Unicode)
    \t tab (HT/TAB), same as \x09
    \n newline (NL/LF), same as \x0a
    \r car.return (CR), same as \x0d
    \f form feed (FF), same as \x0c
    \a alarm (bell) (BEL), same as \x07
    \e escape (ESC), same as \x1b

    Examples:
    foo\x20bar matches 'foo bar' (note space in the middle)
    \tfoobar matches 'foobar' predefined by tab

    Character classes
    You can specify a character class, by enclosing a list of characters in []. It will match any one character from the list.

    If the first character after the '[' is '^', the class matches any character not in the list.

    Examples:
    foob[aeiou]r finds strings 'foobar', 'foober' etc. but not 'foobbr', 'foobcr' etc.
    foob[^aeiou]r find strings 'foobbr', 'foobcr' etc. but not 'foobar', 'foober' etc.

    Within a list, the '-' character is used to specify a range, so that a-z represents all characters between 'a' and 'z', inclusive.

    If you want the character '-' itself to be a member of a class, put it at the start or end of the list, or escape it with a backslash. If you want the character ']' in a class, you may place it at the start of list or escape it with a backslash.

    Examples:
    [-az] matches 'a', 'z' and '-'
    [az-] matches 'a', 'z' and '-'
    [a\-z] matches 'a', 'z' and '-'
    [a-z] matches all twenty six small characters from 'a' to 'z'
    [\n-\x0D] matches any of #10, #11, #12, #13.
    [\d-t] matches any digit, '-' or 't'.
    []-a] matches any char from ']'..'a'.

    Metacharacters
    Metacharacters are special characters which are the essence of Regular Expressions. There are different types of metacharacters, described below.

    Metacharacters - line separators
    ^ start of line
    $ end of line
    \A start of text
    \Z end of text
    . any character in line

    Examples:
    ^foobar matches string 'foobar', only if it's at the beginning of line
    foobar$ matches string 'foobar' only if it's at the end of line
    ^foobar$ matches string 'foobar' only if it's the only string in line
    foob.r matches strings like 'foobar', 'foobbr', 'foob1r' and so on

    The '^' metacharacter by default is only guaranteed to match at the beginning of the input string/text, the '$' metacharacter only at the end. Embedded line separators will not be matched by '^' or '$'.
    You may, however, wish to treat a string as a multi-line buffer, such that the '^' will match after any line separator within the string, and '$' will match before any line separator - you can do this by switching On the modifier /m.
    The \A and \Z are just like '^' and '$', except that they won't match multiple times when the modifier /m is used, while '^' and '$' will match at every internal line separator.

    The '.' metacharacter by default matches any character, but if You switch Off the modifier /s, then '.' won't match embedded line separators.

    TRegExpr works with line separators as recommended at www.unicode.org (http://www.unicode.org/unicode/reports/tr18/):

    "^" is at the beginning of a input string, and, if modifier /m is On, also immediately following any occurrence of \x0D\x0A or \x0A or \x0D (if You are using Unicode version of TRegExpr, then also \x2028 or \x2029 or \x0B or \x0C or \x85). Note that there is no empty line within the sequence \x0D\x0A.

    "$" is at the end of a input string, and, if modifier /m is On, also immediately preceding any occurrence of \x0D\x0A or \x0A or \x0D (if You are using Unicode version of TRegExpr, then also \x2028 or \x2029 or \x0B or \x0C or \x85). Note that there is no empty line within the sequence \x0D\x0A.

    "." matches any character, but if You switch Off modifier /s then "." doesn't match \x0D\x0A and \x0A and \x0D (if You are using Unicode version of TRegExpr, then also \x2028 and \x2029 and \x0B and \x0C and \x85).

    Note that "^.*$" (an empty line pattern) does not match the empty string within the sequence \x0D\x0A, but matches the empty string within the sequence \x0A\x0D.

    Multiline processing can be easily tuned for your own purpose with help of TRegExpr properties LineSeparators and LinePairedSeparator. You can use only Unix style separators \n or only DOS/Windows style \r\n or mix them together (as described above and used by default) or define Your own line separators!

    Metacharacters - predefined classes
    \w an alphanumeric character (including "_")
    \W a non-alphanumeric
    \d a numeric character
    \D a non-numeric
    \s any space (same as [ \t\n\r\f])
    \S a non space

    You may use \w, \d and \s within custom character classes.

    Examples:
    foob\dr matches strings like 'foob1r', ''foob6r' and so on, but not 'foobar', 'foobbr' and so on
    foob[\w\s]r matches strings like 'foobar', 'foob r', 'foobbr' and so on but not 'foob1r', 'foob=r' and so on

    TRegExpr uses properties SpaceChars and WordChars to define character classes \w, \W, \s, \S, so you can easily redefine it.

    Metacharacters - word boundaries
    \b Match a word boundary
    \B Match a non-(word boundary)

    A word boundary (\b) is a spot between two characters that has a \w on one side of it and a \W on the other side of it (in either order), counting the imaginary characters off the beginning and end of the string as matching a \W.

    Metacharacters - iterators
    Any item of a regular expression may be followed by another type of metacharacters - iterators. Using these metacharacters, you can specify the number of occurrences of the previous character, metacharacter or subexpression.
    * zero or more ("greedy"), similar to {0,}
    + one or more ("greedy"), similar to {1,}
    ? zero or one ("greedy"), similar to {0,1}
    {n} exactly n times ("greedy")
    {n,} at least n times ("greedy")
    {n,m} at least n but not more than m times ("greedy")
    *? zero or more ("non-greedy"), similar to {0,}?
    +? one or more ("non-greedy"), similar to {1,}?
    ?? zero or one ("non-greedy"), similar to {0,1}?
    {n}? exactly n times ("non-greedy")
    {n,}? at least n times ("non-greedy")
    {n,m}? at least n but not more than m times ("non-greedy")

    So, digits in curly brackets of the form {n,m}, specify the minimum number of times to match the item n and the maximum m. The form {n} is equivalent to {n,n} and matches exactly n times. The form {n,} matches n or more times. There is no limit to the size of n or m, but large numbers will chew up more memory and slow down r.e. execution.

    If a curly bracket occurs in any other context, it is treated as a regular character.

    Examples:
    foob.*r matches strings like 'foobar', 'foobalkjdflkj9r' and so on, and 'foobr'
    foob.+r matches strings like 'foobar', 'foobalkjdflkj9r' and so on, but not 'foobr'
    foob.?r matches strings like 'foobar', 'foobbr' and so on, and 'foobr' but not 'foobalkj9r' and so on
    fooba{2}r matches the string 'foobaar'
    fooba{2,}r matches strings like 'foobaar', 'foobaaar', 'foobaaaar' etc.
    fooba{2,3}r matches 'foobaar' and 'foobaaar', but not 'foobaaaar' etc.

    A little explanation about "greediness". "Greedy" takes as many as possible, "non-greedy" takes as few as possible. For example, 'b+' and 'b*' applied to string 'abbbbc' return 'bbbb', 'b+?' returns 'b', 'b*?' returns empty string, 'b{2,3}?' returns 'bb', 'b{2,3}' returns 'bbb'.

    You can switch all iterators into "non-greedy" mode (see the modifier /g).

    Metacharacters - alternatives
    You can specify a series of alternatives for a pattern using '|' to separate them, so that fee|fie|foe will match any of 'fee', 'fie', or 'foe' in the target string (as would f(e|i|o)e). The first alternative includes everything from the last pattern delimiter ('(', '[', or the beginning of the pattern) up to the first '|'. The last alternative contains everything from the last '|' to the next pattern delimiter. For this reason, it's common practice to include alternatives in parentheses, to minimize confusion about where they start and end.
    Alternatives are tried from left to right, so the first alternative found for which the entire expression matches, is the one that is chosen. This means that alternatives are not necessarily greedy. For example: when matching 'foo|foot' against 'barefoot', only the 'foo' part will match, as that is the first alternative tried, and it successfully matches the target string. (This might not seem important, but it is important when you are capturing matched text using parentheses.)
    Also remember that '|' is interpreted as a literal within square brackets, so if You write [fee|fie|foe] You're really only matching [feio|].

    Examples:
    foo(bar|foo) matches strings 'foobar' or 'foofoo'.

    Metacharacters - subexpressions
    The bracketing construct ( ... ) may also be used to define r.e. subexpressions (after parsing, You can find subexpression positions, lengths and actual values in MatchPos, MatchLen and Match properties of TRegExpr, and substitute it in template strings by TRegExpr.Substitute).

    Subexpressions are numbered based on the left to right order of their opening parenthesis.
    First subexpression has number '1' (whole r.e. match has number '0' - You can substitute it in TRegExpr.Substitute as '$0' or '$&').

    Examples:
    (foobar){8,10} matches strings which contain 8, 9 or 10 instances of the 'foobar'
    foob([0-9]|a+)r matches 'foob0r', 'foob1r', 'foobar', 'foobaar', 'foobaaar' etc.

    Metacharacters - backreferences
    Metacharacters \1 through \9 are interpreted as backreferences. \<n> matches previously matched subexpression #<n>.

    Examples:
    (.)\1+ matches any repeated character, e.g. 'aaaa', 'cc', etc.
    (.+)\1+ matches any repeated character or any repeated sequence of characters, like 'abab', '123123', etc.
    (['"]?)(\d+)\1 matches a number, or a number between quotes, e.g. "13" (in double quotes), or '4' (in single quotes) or 77 (without quotes) or "56' (between a double quote and a single quote) etc
    (['"])(\d+)\1 matches a number between quotes (only single or only double), e.g. "13" (in double quotes), or '4' (in single quotes), but not "56' (between a double quote and a single quote)

    Modifiers
    Modifiers are for changing behaviour of TRegExpr.

    There are many ways to set up modifiers.
    Any of these modifiers may be embedded within the regular expression itself using the (?..) construct.
    Also, you can assign to appropriate TRegExpr properties (Modifier for example to change /x, or ModifierStr to change all modifiers together). The default values for new instances of TRegExpr object defined in global variables, for example global variable RegExprModifierX defines value of new TRegExpr instance ModifierX property.

    i Do case-insensitive pattern matching (using installed in you system locale settings), see also InvertCase.
    m Treat string as multiple lines. That is, change '^' and '$' from matching at only the very start or end of the string to the start or end of any line anywhere within the string, see also Line separators.
    s Treat string as single line. That is, change '.' to match any character whatsoever, even line separators (see also Line separators), which it normally would not match.
    g Non standard modifier. Switching it Off, You'll switch all following operators into non-greedy mode (by default this modifier is On). So, if modifier /g is Off, then '+' works as '+?', '*' as '*?', and so on
    x Extend your pattern's legibility by permitting whitespace and comments (see explanation below).
    r Non-standard modifier. If set, then range а-я additionally includes the Russian letter 'ё', А-Я additionally includes 'Ё', and а-Я includes all Russian symbols. Sorry for foreign users, but it's set by default. If you want to switch if off by default, set False to global variable RegExprModifierR.

    The modifier /x itself needs a little more explanation. It tells the TRegExpr to ignore whitespaces that are neither backslashed nor within a character class. You can use this to break up your regular expression into (slightly) more readable parts. The # character is also treated as a metacharacter, introducing a comment. For example:

    (
    (abc) # comment 1
      |   # You can use spaces to format r.e. - TRegExpr ignores it
    (efg) # comment 2
    )
    
    This also means that if you want real whitespace or # characters in the pattern (outside a character class, where they are unaffected by /x), you'll either have to escape them or encode them using octal or hex escapes. Taken together, these features can go a long way towards making regular expressions text more readable.
    Perl extensions
    (?imsxr-imsxr)
    You can use it in r.e. for turning modifiers on and off on the fly. The modifiers are turned on like this: (?i) or (?m) or (?s) or (?x) or (?r). The modifiers are turned off like this: (?-i) or (?-m) or (?-s) or (?-x) or (?-r). Multiple modifier can be modified like this (?ix) or (?-ix) or (?m-i) etc. If this construction is used in a subexpression, then it effects only this subexpression.

    Examples:
    (?i)Saint-Petersburg matches 'Saint-petersburg', 'Saint-Petersburg', 'saint-petersburg', 'SAINT-PETERSBURG', 'SaInt-pETeRsBURG', etc.
    (?i)Saint-(?-i)Petersburg matches 'Saint-Petersburg', 'saint-Petersburg', 'SAINT-Petersburg', 'sAInt-Petersburg', etc., but not 'Saint-petersburg', 'Saint-PETERSBURG', 'Saint-pETersBurG', etc.
    (?i)(Saint-)?Petersburg matches 'Saint-petersburg', 'Saint-Petersburg', 'saint-petersburg', 'SAINT-PETERSBURG', 'SaInt-pETeRsBURG', etc., as well as 'Petersburg', 'petersburg', 'PETERSBURG', 'PetERSbuRg', etc.
    ((?i)Saint-)?Petersburg matches 'Saint-Petersburg', 'saint-Petersburg', 'SAINT-Petersburg', 'sAInt-Petersburg', etc., but not 'Saint-petersburg', 'Saint-PETERSBURG', 'Saint-pETersBurG', etc.

    (?#text) A comment, the text is ignored. Note that TRegExpr closes the comment as soon as it sees a ")", so there is no way to put a literal ")" in the comment.


    5.6 Add FPS from Video

    Useful if you have a movie and its corresponding subtitle (which is a frame based one) and you want to edit it but you don't know the FPS of the movie. It lets you find out the FPS of a movie file and add it to Subtitle Workshop's FPS list.
    There are two ways in which you can use this feature:
    1. Using the "Tools/Add FPS from AVI" menu. This method reads the header of the video file, and thus it only works with AVI files (not MPEG, ASF, WMV, etc). It is very fast and if the file is a valid AVI file, it works very well.
    2. Loading the movie from the "Movie/Open" menu. This method uses DirectX, and so it will work with any kind of video files. There are some cases with AVI files that DirectX detects 0 as FPS - in these cases, Subtitle Workshop will alternatively read the header of the AVI.
    Each time you use this feature, the FPS of the video will be added to all the places in which there are boxes to select FPS.

    5.7 External Video Preview

    This option makes it possible to test the subtitle file you are working on in your favourite video player. The video player you want to use must support command line, and at least one of the subtitle formats that Subtitle Workshop supports.

    Go to "Settings/Settings/External preview/General". Here you must select the .exe file of the video player you want to use. If the video player is already associated with .AVI files, click "Detect associated program" button.
    Then select if you want to be asked for a different video each time you test the subtitle, or if you are always going to test the subtitle files with the same video.

    There are other things to configure in the Advanced section. Select the format in which you want the temporary subtitle file to be saved in (it will be saved in the temp directory). Only select "Original format", if you are sure that the video player you are using supports the subtitle format that you are using.

    Finally, you must select the parameters to send to the video player. VIDEO_FILE represents the video file, and SUBT_FILE represents the subtitle file. You can add other parameters, like full screen, etc. Make sure to add SUBT_FILE and VIDEO_FILE between " ", so that if the names of the files contain one or more spaces, they would be passed correctly.

    When you finish configuring all this settings, you can test the subtitle by selecting the "Tools/External preview" menu ([F8]).


    Tested video players:
    1. KMPlayer
      "VIDEO_FILE" /sub "SUBT_FILE" /fullscreen
      (Save temp. file in SubRip format)
    2. Media Player Classic
      "VIDEO_FILE" /sub "SUBT_FILE" /fullscreen
      (Save temp. file in SubRip format)
      Make sure you have selected a video renderer in Media Player Classic's Options, that supports subtitles rendering.
    3. BSPlayer
      "VIDEO_FILE" "SUBT_FILE" -fs
      (Save temp. file in SubRip format)
    4. ViPlay
      /MOVIE:"VIDEO_FILE" /SUBTITLE:"SUBT_FILE" /FS
      (Save temp. file in any format)

    5.8 Internal Video Preview

    Video Preview Panel: have a look at how your subtitles will perform


    First of all, you have to open a subtitle file (or create a new one) and a video file (see Loading a subtitle file and Loading a video file). If you have done both, you will see a media player interface in the upper part of the Main Window - that's the Video Preview Panel. The size of the Video Preview Panel can be adjusted by clicking on the border of the Video Preview Panel and the Subtitles List (the cursor will change) and dragging up or down. Adjusting the video window will resize the video itself.

    Note: If you have an automatic subtitle display filter such as VobSub installed, it will also be effective in here. This may result in two subtitles being displayed on top of each other, at the same time. In that case, set the subtitle display filter not to display a subtitle file, or rename the subtitle file it is displaying, or turn off or uninstall the filter.

    The Video Preview Panel consists of two areas: the Video Display - a large area where the video file is displayed (along with the subtitle for the current moment of the video); and the Video Controls Panel - an area with buttons for controlling the video playback, a Seekbar, and a set of figures displaying the current time in the video, the total duration of the video, and the frames per second (FPS) of the video. The subtitles of the current subtitle file will be displayed on top of the video, following it's timing. Font, color, size and other attributes can be adjusted in Settings.

    Buttons (from left to right): The Seekbar can be used like the one in Windows Media Player, ViPlay or any other player. The smallest possible seeking interval depends on the length of the video file.
    In addition, when the video is paused, moving the mouse cursor over the Seekbar will cause an automatic preview of the corresponding moment of the video.


    5.9 SAMI Language Extractor

    This function extracts one or more languages from subtitles in SAMI format that contain more than one language. Subtitle Workshop doesn't support multilingual SAMIs, so with this tool you can extract the desired languages and open them as one language SAMIs.



    Frequently Asked Questions (FAQ)

    1. Q: How do I save the video file with subtitles?
      A: Currently, Subtitle Workshop doesn't offer this kind of functionality. It can only handle text based subtitles and cannot "attach" them to any video. You can create or edit your subtitles with Subtitle Workshop and use another software to save the video file with the subtitles. Note that we do not recommend at all to burn subtitles into a video file (unless it's absolutely necessary), since the subtitles won't be editable after that and the video will have to be re-encoded, which will lead to loss of video quality and precious time.

    2. Q: How can I add subtitles to the DVDs I create?
      A: Subtitle Workshop does not do the full job, but it can help a bit. You need additional software to achieve this task.

    3. Q: I'm trying to load a subtitle file and I always get the same error message. What should I do?
      A: See 1.4.1 Loading a subtitle file

    4. Q: I type X language characters, but Subtitle Workshop doesn't display them correctly. What should I do?
      A: Go to "Settings/Settings/Charsets", and change "Original charset" and "Translation charset" to the correct value. Do that if the characters are displayed incorrectly only in the Subtitles List and the Text and Translation fields. If the characters aren't displayed correctly in the menus, buttons, etc. as well, you will need to go to the language file you are using and change the "Font Charset" value to the correct charset (see charsets.txt in the language files directory for a reference). If you still don't see characters correctly, go to "Regional and Language Options" in Windows' Control Panel, then in the "Advanced" tab, set the default "Language for non-Unicode programs" to your language, and restart Subtitle Workshop.

    5. Q: Is there a quick way to jump to the next/previous subtitle in the Subtitles List?
      A: Yes, there is. To jump to the next subtitle, press [Shift]+[Enter]; to jump to the previous subtitle, press [Ctrl]+[Enter]. Each time you jump to the next/previous subtitle, the field that has the focus will not loose it - that means, if you are editing the text of subtitle #1, after you press [Shift]+[Enter], you can start typing the text for subtitle #2 right away. The same thing applies for the time fields.

    6. Q: How can I select multiple subtitles in the Subtitles List?
      A: The default Windows selection schemes works in Subtitle Workshop. Hold the [Ctrl] key and click all the subtitles you want to select. If you want to select many consecutive subtitles, select the first one, hold the [Shift] key, and select the last one. If you wish to deselect a selected subtitle, hold [Ctrl] and click it.

    7. Q: How can I jump to the line that contains an error in the Subtitles List, from the "Information and errors" window?
      A: Double click on the line in the Errors List, and it will be selected in the Subtitles List.

    8. Q: I hate pressing [Ctrl]+[I] multiple times! How can I jump to next error?
      A: You can jump to the next error by pressing [F12], or to the previous error by pressing [SHIFT]+[F12].

    9. Q: How can I manually add a FPS to the lists without using "Add FPS from AVI"?
      A: Just select the text in the "FPS" or the "Input FPS" fields, type a new FPS (the decimal separator must be ",") and press [Enter].

    10. Q: How do I simulate double click on a subtitle, but with the keyboard?
      A: Select the subtitle and press [Alt]+[Enter].

    11. Q: How do I configure my own shortcuts?
      A: Close Subtitle Workshop, open the "shortcuts.key" file inside Subtitle Workshop's directory with any text editor, read the information in the header, modify the file, save it and run Subtitle Workshop.

    12. Q: There's audio but no picture when I open a video file, how can I fix this?
      A: Try changing the Video Renderer (via the "Movie/Video renderer" menu) from "Default" to "VMR9". If this doesn't help, there is most likely a problem with your codecs. Consider installing the latest version of a codec pack like the K-Lite Codec Pack.



    Known issues


    Contact information

    Please, don't hesitate to send us all your questions, comments, ideas, suggestions, bug reports, etc., as well as your language file and user manual translations!

    E-mail: subtitleworkshop@gmail.com

    Website: http://subworkshop.sf.net

    Project page on SourceForge.Net: https://sourceforge.net/projects/subworkshop/.

    User Manual authors: URUSoft, Andrey Spiridonov


    License

    Subtitle Workshop is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

    Subtitle Workshop is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with Subtitle Workshop. If not, see <http://www.gnu.org/licenses/>.

    IF YOU DON'T ACCEPT THESE TERMS, YOU SHOULD CEASE AND DESIST TO USE THIS PROGRAM.