CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
(All key shortcuts mentioned in this manual are based on the defaults)
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:
Current list of supported formats:
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 URUSoft
Subtitle API.
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 engine of Subtitle Workshop can
be published without releasing a new version, that not only includes bug fixes,
but also new subtitle formats. Because of this DLL, you only have to download
few kb instead of more than 800 kb if you find a bug in the reading or writing
engine.
After downloading the DLL, you must go to Subtitle Workshop's folder and put it
in the 'SubtitleAPI' directory. The next time you open Subtitle
Workshop, new formats/bug fixes will make effect.
If we are going to have a
visual overview, we should start by looking at a screenshots. To view some,
click here.
One of the things that make Subtitle Workshop unique is it's interface - very
user friendly but at the same time 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.
Get started using Subtitle Workshop's basic features.
To load a subtitle file simply click the 'File/Load
Subtitle' menu or press [Ctrl]+[O] keys. Additionally, you can
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 this methods, the file will be checked
to see if it is a valid file and which is the format of it. Most of the files
will load properly, 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:
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 me and I'll fix it.
To load a video file simply
click the 'Movie/Open' menu or press the [Ctrl]+[P]
keys. 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 Coda Codec Pack, it should fix most of the
playback problems.
Using Subtitle Workshop you can
easily create new files from scratch, and then save them in any format. To do
so, click the 'File/New subtitle' menu or press [Ctrl]+[N]
keys. Once you have done this, you can start adding subtitles, and then save
the file by the 'File/Save' menu or pressing [Ctrl]+[S]
keys.
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 item. The default duration of the
new subtitle is one second, and the start time of it is always going to be the
final time of the previous one plus 1 millisecond. If you are adding the
subtitle in a blank list, the initial time of it will be zero.
If you want to insert a subtitle before the selected item, press [Shift]+[Insert]
keys or the 'Edit/Insert before' menu.
Select all the subtitles you
wish to delete by holding Ctrl key and click in them and press the Delete
key or click the 'Edit/Remove selected' menu.
Every subtitle is composed by three parts:
Subtitle Workshop lets you
easily edit any of these fields.
To edit the initial time just click the 'Show' field, set the
time (or frames) you wish and press [Enter].
To edit the final time click the 'Hide' field, set the time
(or frames) you wish and press [Enter]. Note that you can also edit the
final time of a subtitle by changing the 'Duration' field.
Additionally, you can edit any of this time values using the Up-Down buttons at
the right side of each text box.
To edit the text, simply click the 'Text' box and write the desired
text. In the list of subtitles, the character '|' (pipe)
represents new line.
First of all, you must know that Subtitle Workshop only supports tags for the whole subtitle. So if you really want to apply font style over one part of the subtitle, you are going to need notepad. As it only supports tags for the whole subtitle, you only need to open the tags because closing them would be useless. The supported tags are:
To add this tags you can simply
write them, and additionally you can right-click the list of subtitles and a
menu will pop up, you can use this menu to control the all tags on the selected
subtitles. Note that more than one tag can be used in the same subtitle (of
course, if they are all different tags), it may have even the 4 supported tags
at the same time.
WARNING: Please note that not all subtitle formats support style tags,
nor color tags. If you save these tags in a subtitle format which doesn't
support them, the tags will be lost.
Knowing the difference between
this two fields is crucial to work with Subtitle Workshop.
Input FPS is the FPS of the movie that the subtitle was originally made
for. FPS is the FPS of the movie you want it to adjust the subtitle to.
You have to modify this field in order to convert FPS. 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 set 'Input FPS' to 25, load the subtitle file and
then set 'FPS' to 29,97. You have just changed framerate of the file.
It is highly recommended that
you send each parameter to Subtitle Workshop between ' ' 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, if not, 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 in the form of a string, and if
you are using an updated version of SubtitleAPI you may specify new formats,
since the possible formats depends on the version of SubtitleAPI.
For you to know 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:FolderSub.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 delay a 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.
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, Espaol.lng, English.lng, Franais.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 me
so I can distribute it with the installation package. The name of the
translator will be shown in the About Subtitle Workshop window.
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. This option is only to save files, if you
do this in a format that Subtitle Workshop doesn't support, reading the file
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
This is useful to identify the format in which you are saving the file (or the
project).
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 a 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
This is very simple. The parts that Subtitle Workshop will write to a file can
be divided in three, and in this order:
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 (this will write only
one asterisk). To write two, '*' or
'' are the same.
First write the first section (if there is). Then begin the second section (the
repeating part) with .
Repeating section
In this section it is possible to write 4 things.
Check the 'CEF Examples' folder, and load some
examples to see how to use this feature better.
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 actually start. To apply a delay, first load your
subtitle, then click the 'Edit/Timings/Set delay' menu or
press [Ctrl]+[D] keys. The delay dialog will pop up.
If you are working in the time mode, you should set a time delay and if you are
working in the frames mode, you should set a frames delay. Subtitle Workshop
will automatically detect it. You are able to choose if you want to apply the
delay to all the subtitles or just to the selected ones, useful if only one part
of the subtitle gets appears later than it should.
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 load the subtitle file you are going to adjust, and for methods 1, 2 y 4 you need to load the video file you want to take as a reference.
This method offers a lot of accuracy, and is recommended in most cases. After you loaded the subtitle file and video, do this:
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
calculate 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 in one point in the
subtitle 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 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
dialogs) 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 instantly synchronized.
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 click the 'Timings/Adjust/Adjust to synchronized subtitles' menu or press the [Shift]+[Ctrl]+[B] keys, and load the synchronized file. Note: this method is NOT the same as the 'read times from file' feature.
Use this 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. This are the steps yous should follow now:
A very important thing you must know is the use of the 'If time is outside the points scope' option. I will try to describe the three possibilities:
When you are done configuring
all the settings, click the Adjust! button.
Duration limits makes possible
to fix the duration of all the subtitles in a file to a range of time.
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, this 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 or press the [Ctrl]+[L] keys. After that you
need to enter the maximum and minimum duration in milliseconds and press the Apply
button.
Time expander/reducer is a very
nice feature in the cases you have a subtitle file that contains some long
subtitles with short durations. It is close to 'Duration limits' but
much more useful if the file only has long subtitles with short times. This
feature lets you expand or reduce the duration of certain subtitles under
certain conditions. To access to time expander/reducer click the 'Edit/Timings/Time
expander/reducer' menu or press [Shift]+[Ctrl]+[Y] keys.
The amount of time you want to expand or reduce the duration 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 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 final time of the
subtitles. When you have configured everything, you have to select if you want
to apply time expander to all the subtitles or only to the selected subtitles.
To finally expand the durations of the pertinent subtitles, press the Apply
button.
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 or press the [Shift]+[Ctrl]+[T] keys. A
dialog will pop up, all you have to do is select the file with the right times
in that dialog and load it.
'Extend length' works
only for the selected subtitles and has no effect over the last subtitle of the
file. What is does is, extend length of each subtitle to one millisecond before
the start time of the next subtitle. To extend length first select the
subtitles you want, and then click the 'Edit/Timings/Extend
length' menu or press the [Shift]+[Ctrl]+[E] keys.
'Automatic durations'
is a very useful feature in the cases you have a subtitle file in which the
duration of all (or some) subtitles is totally wrong. By specifying a time per
character, word and line (the default values give very good results) Subtitle
Workshop will calculate the appropiate duration for the subtitle. Another use
this feature may have is for example when subtitling videos, to go faster you
can only set start times manually and Subtitle Workshop will calculate all
final times. To access 'Automatic durations' click the 'Edit/Timings/Automatic
durations' menu or the [Shift]+[Ctrl]+[R] keys.
You can additionally specify if you want to apply new duration in all cases,
only if it is greater than original or only if it is smaller than original. You
can also apply calculated 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 time.
This feature moves all the selected subtitles initial time a
specified number of milliseconds forward/backwards, 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 or the [Shift]+[Ctrl]+[H] keys. To shift
selected subtitles backwards, click the 'Edit/Timings/Shift -X
milliseconds' menu or the [Shift]+[Ctrl]+[N] keys.
Subtitle Workshop isn't just an ordinary subtitle editor - and thus it offers
many text related functions to ease your work.
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
constrains the subtitle's text to be in one or maximum two lines (depending on
the length of it). This feature has a bit of '-' sign detection. You
may choose the length after which the subtitle will be in two lines and not in
one, in the 'Two lines if longer than' option in Settings/General.
To use smart line adjust over a subtitle just select it and click the 'Edit/Texts/Smart
line adjust' menu or press [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 original
and translated text.
Note that smart line adjust is not perfect and it may act badly in some cases,
it is just thought to help a bit if the lines needed to adjust are a lot, and
does its job quite well. It may act completely wrongly if there are words
composed by the '-' sign, although I've added a little detection for
words composed with '-' sign. If you want to apply Smart Line Adjust
over a whole file, you can do it, but reading all the subtitle after that is
highly recommended.
Have you ever found a unique subtitle file that is all in uppercase?, or all in lowercase?. Well, then 'Convert case' is your feature. To access convert case dialogue click the 'Edit/Texts/Convert case' menu or press [Shift]+[Ctrl]+[C]. You are able to select among five different case conversion modes:
Note that if you are working in
translator mode, convert case will only work for original text. If you want it
to work for translation, then use the 'Swap' feature.
Not much to say about this
feature. It takes effect over all the selected subtitles, and make each one of
them to be in only one large line. When working in translator mode, this
feature affects the original text and also the translation.
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 is a very annoying job, since after you insert the subtitle you
also have to set all the times and cut text from the first subtitle to put in
the second one. 'Divide lines' does all this very quickly.
First of all you have to select the subtitle, then go to the 'Edit/Texts/Divide
lines' menu or press [Shift]+[Ctrl]+[D]. Then the
'Divide line' dialog 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.
When in the divide line dialog, you are going to see two text boxes, one with
first subtitle's text and the other 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 will divide 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 times 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' check box checked.
If the second subtitle should be displayed some time after the first one, you
have to uncheck the check box and write the start 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 part will be displayed the double time as the second one, etc. You
can also choose if you want to use the original subtitle's time with
proportionality buttons or to calculate an automatic duration for each new
subtitle. In the second case, Subtitle Workshop will calculate the duration of
the first new subtitle (based on duration per character on the original
subtitle) and use it to calculate the duration of the second new subtitle.
Finally press the 'Divide!' button. 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.
Splits the subtitle in N number
of lines so that each of the lines is shorter than a maximum specified length.
That maximum length is configurable from Settings/Advanced. This feature affects
all the selected subtitles, and while in translator mode, affects original and
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 together with 'Divide
lines'.
The same as the 'Read
times from file' feature but instead of reading the times it reads the
texts.
Very useful, combines all the selected subtitles into one. For example:
Start time |
Final 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:
Start time |
Final time |
Text |
00:00:01,000 |
00:00:03,000 |
- Why don't you do that? |
The final time of the new subtitle becomes the final time of the last selected
subtitle.
To combine two or more subtitles, select them and press [Ctrl]+[K] or
the 'Edit/Subtitles/Combine subtitles' menu.
Features only useful for right
to left languages, such as Hebrew or Arabic.
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 in original text. To make
it work in translation, use the '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 press [Ctrl]+[H]
keys or the 'Edit/Subtitles/Right to left/Reverse text' menu.
Fixes punctuation for right to
left languages. Example:
'Fix this punctuation!' to '!Fix this
punctuation'.
When in Translator mode, this feature will only affect translation. To make it
work in original text, use the 'Swap' feature or exit translator
mode.
To fix the punctuation, select the desired subtitles and press [Shift]+[Ctrl]+[F]
keys or the 'Edit/Subtitles/Right to left/Fix punctuation'
menu.
Sorts the subtitles according
to their start time. Just press [Ctrl]+[Y] or the 'Edit/Subtitles/Sort'
menu.
Deletes '' when they are placed at the end of a subtitle and at the beginning of the next one. Example:
Start time |
Final 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:
Start time |
Final 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, some other people don't. To delete
'unnecessary links' press [Shift]+[Ctrl]+[G] keys or the 'Edit/Subtitles/Delete
unnecessary links' menu. It will make effect over the whole subtitle,
not the selected subtitles.
Subtitle Workshop's Search
& Replace is very fast and has some extended options available pressing
'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. For eg. 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 new line. If you
want to search for '|' then use '||' (two pipes).
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. To mark all the selected subtitles, click the 'Edit/Subtitles/Mark
selected subtitles' menu or the [Shift]+[Ctrl]+[M] keys. To
unmark them click the 'Edit/Subtitles/Unmark selected subtitles'
or the [Shift]+[Ctrl]+[A] keys.
This feature has other uses, too. It's main purpose is to work together with
ViPlay. Explanation:
While you are watching a movie in ViPlay you can use a custom key (eg.
'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' and it will
be marked (internally). When the movie ends, ViPlay will ask you to save a
Subtitle Report File (*.srf). This file will later be loaded by 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.
Here we will try to explain all
the meaning of the options available in Settings.
Always on top
Maintains the 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, or only one. If this
option is unchecked and you open more files via explorer, they will all be
opened in the same window, and 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 a subtitle or more than
one in the main list, Subtitle Workshop will show a confirmation message and
ask you if you are really sure 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 need to set the timings manually.
Autosearch 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 'Reverse text' feature ([Ctrl]+[H] keys or 'Edit/Subtitles/Right
to left/Reverse text' menu) 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].
No interaction with tags
Check this option if you want Subtitle Workshop to simply ignore tags when
reading files in any subtitle format. And ignoring means do not delete them.
Useful if you would like to work with full support for tags (eg. for one part
of the subtitle and not just all the subtitle), feature which Subtitle Workshop
does not support in it's current version.
Work with style tags
Check this option if you want Subtitle Workshop to load and save style and
color tags. The number of formats that support tags depends on the version of
Subtitle API. This option doesn't have any effect if 'No interaction with
tags' is turned on.
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.
Two lines if longer than
As the maximum number of lines that Smart
line adjust will produce is two, you have to set a length after which there
will be two lines instead of one. 'Two lines if longer than' is that
value.
Toggle break point
Toggles between two break points (first space before specified length, or first
space after specified length) in some subtitles.
Break line after
Useful to use 'Divide lines' in subtitles that are only one line, but
that line is long. Use this value to divide that long line in various smaller
lines, that have a maximum of number of characters equal to 'Break line
after' value.
Smart line adjust automatically
Specifies if you want to automatically 'Smart line adjust' each part
in the 'Divide lines' window.
Shift time
Time to shift subtitle forwards/backwards with the shift
subtitles feature.
Show in main form
Useful for people working with subtitles in various languages who use a
different alphabet. Shows 'Original charset' and 'Translation
charset' in the main form, so it can be quickly modified.
Original charset
Charset to display characters in the 'Text' column.
Translation charset
Charset to display characters in the 'Translation' column. Only
useful if you work in translator mode.
Default format
Specifies the default format to use in all the windows where there are formats
lists (eg. Join subtitles,
Formats to show when 'Save as'
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 40 items. Only
the checked formats listed here will be shown in the 'Save as'
dialog.
Show custom formats
Specifies if you want to show the custom formats placed on the
'CustomFormats' folder in the 'Save as' window.
Register extensions on start
Associate the desired subtitle extensions when Subtitle Workshop is executed.
Associate with most supported subtitle extensions
If this option is checked, then you just have to double-click on a subtitle
file to load it into Subtitle Workshop, and the file's icon will become Subtitle
Workshop's main icon.
List of file extensions
Files types which will be open by Subtitle Workshop when double clicking on
file icon.
Ask to save on exit
program/close subtitle
Subtitle Workshop will display the 'File has changed. Do you want to save
the changes?.' message when you try to exit program or close subtitle. If
you disabled the 'Allow more than one instance running' option and
you try to load a file via explorer when there is already a loaded file, this
message will be also shown.
Save work automatically every X minutes
Subtitle Workshop will silently save the modified subtitle file every the
minutes you choose.
Save as backup
Saves the original/translated file as a backup (FileName.ext.bak) instead of
overwriting the original/translated file.
All the options listed here will work only if you are in
video preview mode. Double click and shift-double click in a subtitle
You are able to select what to do when you double click in a subtitle, and when
you double click in a subtitle while holding [Shift] key. The available options
are three:
Rewind and forward times
Times to rewind/forward when pressing the 'Rew' and
'Forward' buttons in the video controls bar.
Default altered playback rate
The percentage of playback rate to apply when pressing the 'Alter playback
rate' button in the video controls bar.
Try transparent background
Enable this check box if you want the subtitles to be displayed 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 first option enabled and
you really want them. If this option is enabled then the text of the subtitles
can't have the FUCHSIA color (#FF00FF).
Most of the other things here don't need any kind of explanation, everything
you modify can be seen in the 'SAMPLE' subtitle.
This feature makes possible to preview subtitles in your favourite movie player.
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.
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.
Font to use in the program
& font size
If you change this, the whole font of the program and/or it's size will be
changed. Try this if you get problems with the fonts or if you don't like the
default font.
'Text' and 'Translation' fields align
Choose the text alignment that you want for this two fields.
Show grid lines
Shows line between the rows and columns of the subtitle's 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 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.
Use Office XP style menu
Uses the custom menu & popup menu in the main form. If you turn this off,
the default Windows menus will be used.
Use gradient menu
Draws a gradient in the left of the menus.
Must-have features in every subtitle tool.
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 F7 key or the 'Tools/Spell check' menu. 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. But anyway, it works
pretty well most of the time.
This feature lets you convert a large number of subtitle
files in any format to a single format, and then save them in the path you wish
with only few clicks.
Click the 'Tools/Batch convert' menu or press [Ctrl]+[M].
After doing this, you should follow this steps:
After pressing the button,
Subtitle Workshop will search for valid subtitle files in the search path you
chose.
When searching finishes, you will see a list with all the 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 may add new files to the list, or remove files. You can also change FPS of
a frame based file (or many files at one time), selecting it and changing the
box that is at the left of the 'Clear' button.
Finally, press the Convert button and conversion should start. When it
finishes, Subtitle Workshop will generate a log (*.log) file, reporting all the
possible errors together with the successes.
There are two possible splits:
Use the one that best fits your needs.
Simple split
You first have to choose where to split the file, you have 5 possibilities:
After selecting where to split
select the file names (excluding the extension, it will be added
automatically), the output format and press the
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 & 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 spliting. Finally select the output path, the output format and
press the
With Subtitle Workshop you can
join more than two subtitles, and those subtitles 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 or press [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 of one file you may drag it with the
mouse and put it where you want. If the file is a frame based subtitle you may
also modify it's FPS selecting it and modifying the value of the combo box that
is at the left of the 'Clear' button. You can do that operation to
all selected frame based subtitles at one time.
Optionally, may set a movie fragment for each part (except of course the last)
so Subtitle Workshop will make all changes in the timings of 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 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, 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
beginning in the second one, so you don't have to do it manually. This option
will not work if the parts are associated to movie fragments. Finally, press
the Join button.
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.
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 it is important to know what types of errors are going to be fixed first. The priorities are:
Errors 1 to 6 are first because when fixing that type of
errors, the subtitle can get deleted under certain circumstances, so if for
example time fixings were first, it would lead to a time fix and then to delete
the subtitle, and that is pointless.
Lines without letters
Deletes lines of the subtitle that don't contain letters (a-z, -, etc).
Example:
Start time |
Final time |
Text |
00:00:00,250 |
00:00:01,350 |
This is the text 1 |
00:00:00,780 |
00:00:02,150 |
s?!t |
In both cases, Subtitle Workshop will delete second and
first lines respectively, because they do not contain letters (don't
misunderstand, 'letters' is not the same as 'characters').
Empty subtitles
An empty subtitle can be:
In both cases, Subtitle
Workshop will delete the subtitle.
Repeated subtitles
This is very common in OCRs. Example:
Start time |
Final 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:
In the example above, the start time of second subtitle is exactly the final 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, it is the maximum difference between FinalTime1 and InitialTime2 admittible to detect a subtitle as a repeated subtitle. After fixing, the final subtitle will look like this:
Start time |
Final time |
Text |
00:00:01,000 |
00:00:02,000 |
Come on, let's book. |
The start time will be the start time of the first subtitle, and the final time
will be the final time of the last subtitle.
Prohibited characters
Finds subtitles that contains prohibited characters and delete them (the whole
subtitle - not the characters).
Text before colon (':')
The text before colon is usually for deaf people. Most of the times it
represents the name of the person who is currently speaking.
Example:
Start time |
Final 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 usually be all in CAPITAL LETTERS,
so you can enable the 'Only if text is in capital letters' option,
and thus avoid many kind of problems, eg. with this kind of subtitles 'I'm
going to tell you something:|Don't ever do that again'. After fixing, the
text will be:
Start time |
Final 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,
eg. '12:30', and thus it will avoid problems with times.
Hearing impaired subtitles
Hearing impaired subtitles are whole subtitles, or just part of a subtitle,
that are exclusively for deaf people. Most of the people don't want
'noises' and 'sounds' inside their subtitles, so they want
to eliminate them. Deaf people shouldn't use this feature, of course. Hearing
impaired subtitles are usually enclosed in parenthesis ('(' and
')' and/or '[' and ']').
Example:
Start time |
Final 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. So, after fixing, this will result in:
Start time |
Final 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? |
Overlapping subtitles
This error is produces whenever a subtitle appears in the screen sonner than
the time in which previous subtitle is hidden. That is to say, when the final
time of a subtitle is greater than the initial time of the next one. Let's see
this example to see it clearly:
Start time |
Final 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 number two is shown before subtitle number one is hidden. Subtitle
Workshop will fix this acting appropiately, depending of the length of the
texts of the subtitles. There are three possible solutions:
Start time |
Final 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 |
Start time |
Final time |
Text |
00:00:00,250 |
00:00:01,350 |
This is the text 1. More than four extra characters. |
00:00:01,351 |
00:00:02,150 |
This is the text 2 |
Start time |
Final time |
Text |
00:00:00,250 |
00:00:00,779 |
This is the text 1 |
00:00:00,780 |
00:00:02,150 |
This is the text 2. More than four extra characters. |
Bad values
Bad values is when the initial time of a subtitle is greater than it's final
time.
Example:
Start time |
Final 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:
Start time |
Final 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:
Start time |
Final time |
Text |
00:00:01,000 |
00:00:02,000 |
Yeah. Should taste it.. |
Would result in:
Start time |
Final time |
Text |
00:00:01,000 |
00:00:02,000 |
Yeah Should taste it |
Repeated characters
Finds the characters you wish when they are repeated, for example, if you have
'!' as a repeatable characters, it would find:
Start time |
Final time |
Text |
00:00:01,000 |
00:00:02,000 |
Do it, now! ! ! ! |
And will replace into:
00:00:01,000 |
00:00:02,000 |
Do it, now! |
It works the same with every repeatable character. The default characters are
'-t!s?',;/_[]=', you may add/remove characters if you want,
from Information and Errors settings.
OCR Errors
As different languages have different OCR errors, the OCR scripts were born.
For more information on the scripts, refer here.
'-' in subtitles with one line
There is no sense in having subtitles with one line starting with '-'
(open dialog) 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.
Space after custom characters
Adds a space (if not present) after any of the characters in 'Space after
characters' in Information and Errors's settings/Advanced. Useful for
example to add a space after the dialog start to turn:
-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 not present) before any of the characters in 'Space
before characters' in Information and Errors's settings/Advanced. Useful
for example for french language, to add spaces before '?',
'!' and ':'.
Unnecessary spaces
This is a must. Eliminates the unnecessary spaces you choose from the text of a
subtitle file. Currently this type of spaces can be removed:
As different languages may
require different spacings, all the types of spaces to remove are configurable.
Subtitles over two lines
Just 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. This error must be fixed 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.
To access to Information and
Errors Settings, press [Alt]+[I] keys or the 'Tools/Information
and errors/Settings' menu. Additionally you can access this
Settings from the Information and Errors window, pressing the
'Settings' button.
Now let's review all the options you will find.
Mark errors in main form's list
You are able to let Subtitle Workshop mark the errors in the main list by
enabling this option. You can specify Font Color/Style (bold, italic,
underline).
If the errors are marked in the main list, it is very easy to fix them
manually, and in a lot of cases this is very useful. For example, if you have
lots of long three lines subtitles you can mark them in a certain color, and
then fix them all (one by one) using Divide
lines.
If the marked error is difficult to identify visually (for example it is very
hard sometimes to tell that a subtitle has got unnecessary spaces or
unnecessary dots) you can put the mouse over the subtitle with errors for half
a second and you'll get a description specifying exactly what type of error it
has.
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.
Fix errors on load subtitle
Automatically fixes all the errors when the subtitle is loaded.
Fix one unit overlap at load
Fixes the most common overlapping when the subtitle is loaded. Example:
Start time |
Final 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:
Start time |
Final time |
Text |
00:00:01,000 |
00:00:02,000 |
This is subtitle 1 |
00:00:02, |
00:00:03,000 |
This is subtitle 2 |
Enabling this option is very safe.
OCR Script:
Specifies the name of the OCR Script you are currently using. This script has
to be in the 'OCRScripts' folder inside Subtitle Workshop's
directory. All the scripts listed here are all the '.ocr' files found
in the above mentioned folder. The 'Edit' button will open Notepad so
you can edit the file manually, add or remove possible OCR Errors.
Repeatable characters
Specifies all the characters that can be repeated, and that are going to be
fixed if the 'Repeated characters' fixing is enabled.
Prohibited characters
Specifies all the characters that can't be in any subtitle, if the
'Prohibited characters' fixing is enabled and a subtitle contains any
of this characters, it will be deleted.
Tolerance for repeated subtitles
Specifies the maximum admittible difference between final time of the first
subtitle and initial time of the second one to detect and eventually fix a
repeated subtitle.
Space after characters
Specifies all the characters to use with the 'Space after custom
characters' repair. The characters have to be one after the other (not
separated by comma or whatever).
Space before characters
The same as above but this characters will be used with the 'Space before
custom characters' repair.
Too long duration
Specifies the value after which a duration is considered as too long.
Too short duration
Specifies the value before which a duration is considered as too short.
Too long line
Specifies the number of characters after which a line is considered as too
long.
You are able to choose what
errors to check for, and what errors to fix. And also, you can choose what
unnecessary spaces to check for and what to fix.
The OCR Scripts are nothing but a serie of Find-ReplaceBy
specifications in a human-friendly close to HTML syntax. What makes them
powerful?. The commands that are available. The possibility of using regular
expression makes possible for you to find and replace almost anything needed 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:
WordChars represents all the charcters that can form a word
in your language. The default is the string shown above. If no parameter is
passed, the default will be used. This are one of the most common OCR errors in
English language, as in OCR Engines, 'l' (small 'L') and
'I' (big 'i') have no difference at all, they are often
misplaced. Another very common error is the inclussion of spaces before colon.
In the short example above Subtitle Workshop will use regular expressions on
the search for errors. And if we don't want to use regular expressions?. For
that we need to take a look at the parameters that define how you want the
search to be made:
UseRE
UseRE='True' or UseRE='False'. The default value is True.
If it is set to false then regular expressions will not be used in the search.
Use it as False only if you want to simplify the way find-replace commands are
written, because if regular expressions are disabled then the OCR scripts have
few power.
UseREOnlyToFind
UseREOnlyToFind='True' or UseREOnlyToFind='False'. The
default value is True. To explain how this works we need to see an example:
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 we are about to replace we also replace the part
that is a regular expression (in this case '[a-z]', matching
'c' this time).
In the second situation, when we are about to replace we only use the regular
expression part ('[a-z]') to search for the text, but we don't use it
to replace. We will only replace the part o the 'Find=' text that is between
parenthesis, that is, you need to write the normal regular expression and
the part that is 'constant' and won't vary between parenthesis. This
is extremely useful for the OCR Scripts (take a deep look at Default.ocr to
understand).
The following parameters are only available when 'UseRE' is set to
false:
WholeWord
WholeWord='True' or WholeWord='False'. Setting it to False
is the same as not including it. If true, it will find the 'Find='
text only if it is forming a Word.
CaseSensitive
CaseSensitive='True' or CaseSensitive='False'. Setting it
to False is the same as not including it. If true, it will be case sensitive
while finding the text.
This are the most used commands, you can do a lot with them. But there are
more:
PreserveCase
The default value is False. If true, it will preserve the case of
'Find' text when replacing to 'ReplaceBy' text. For
example, if we have this error:
As it is not case sensitive, we suppose Subtitle Workshop finds the text 'Dog' and not 'DOG'. When replacing to 'CAT', it will clone the case of the text it found, so it will replace 'Dog' by 'Cat' and not by 'CAT'.
This document is taken from
TRegExpr help file, an excellent Regular Expressions library for
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 ;) ), handly and powerfull tool.
I strongly recommend you to play with regular expressions. Let's start our
learning trip!
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 '^' match character '^',
'' match '' and so on.
Examples:
foobar |
matchs string 'foobar' |
^FooBarPtr |
matchs '^FooBarPtr' |
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', where 'nnnn' - one or more hexadecimal digits.
xnn |
char with hex code nn |
x |
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), 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:
foox20bar |
matchs 'foo bar' (note space in the middle) |
tfoobar |
matchs 'foobar' predefined by tab |
You can specify a character class, by enclosing a
list of characters in [], which 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 '-'' 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 ']' you may place
it at the start of list or escape it with a backslash.
Examples:
[-az] |
matchs 'a', 'z' and '-' |
[ |
matchs 'a', 'z' and '-' |
[a-z] |
matchs 'a', 'z' and '-' |
[a-z] |
matchs all twenty six small characters from 'a' to 'z' |
[n-x0D] |
matchs any of #10,#11,#12,#13. |
[d-t] |
matchs any digit, '-' or 't'. |
[]-a] |
matchs any char from ']'..'a'. |
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 |
matchs string 'foobar' only if it's at the beginning of line |
foobar$ |
matchs string 'foobar' only if it's at the end of line |
^foobar$ |
matchs string 'foobar' only if it's the only string in line |
foob.r |
matchs 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
(https://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 x0Dx0A 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 x0Dx0A.
'$' is at the end of a input string, and, if modifier /m is On, also
immediately preceding any occurrence of x0Dx0A 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 x0Dx0A.
'.' matchs any character, but if You switch Off modifier /s then
'.' doesn't match x0Dx0A 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) doesnot match the empty
string within the sequence x0Dx0A, but matchs the empty string within the
sequence x0Ax0D.
Multiline processing can be easely 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 rn or mix them together
(as described above and used by default) or define Your own line separators!
w |
an alphanumeric character (including '_') |
W |
a nonalphanumeric |
d |
a numeric character |
D |
a non-numeric |
s |
any space (same as [ tnrf]) |
S |
a non space |
You may use w, d and s within custom character classes.
Examples:
foobdr |
matchs strings like 'foob1r', ''foob6r' and so on but not 'foobar', 'foobbr' and so on |
foob[ws]r |
matchs 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 easely redefine it.
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.
Any item of a regular expression may be followed by another type of metacharacters - iterators. Using this metacharacters you can specify number of occurences of previous character, metacharacter or subexpression.
* |
zero or more ('greedy'), similar to |
+ |
one or more ('greedy'), similar to |
? |
zero or one ('greedy'), similar to |
exactly n times ('greedy') |
|
at least n times ('greedy') |
|
at least n but not more than m times ('greedy') |
|
*? |
zero or more ('non-greedy'), similar to ? |
+? |
one or more ('non-greedy'), similar to ? |
?? |
zero or one ('non-greedy'), similar to ? |
? |
exactly n times ('non-greedy') |
? |
at least n times ('non-greedy') |
? |
at least n but not more than m times ('non-greedy') |
So, digits in curly brackets of the form , specify the minimum number of
times to match the item n and the maximum m. The form is equivalent to
and matches exactly n times. The form 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 |
matchs strings like 'foobar', 'foobalkjdflkj9r' and 'foobr' |
foob.+r |
matchs strings like 'foobar', 'foobalkjdflkj9r' but not 'foobr' |
foob.?r |
matchs strings like 'foobar', 'foobbr' and 'foobr' but not 'foobalkj9r' |
foobar |
matchs the string 'foobaar' |
foobar |
matchs strings like 'foobaar', 'foobaaar', 'foobaaaar' etc. |
foobar |
matchs strings like 'foobaar', or 'foobaaar' but not 'foobaaaar' |
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?' returns 'bb', 'b' returns 'bbb'.
You can switch all iterators into 'non-greedy' mode (see the modifier
/g).
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 '|'', and 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) |
matchs strings 'foobar' or 'foofoo'. |
The bracketing construct ( ) may also be used for 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) |
matchs strings which contain 8, 9 or 10 instances of the 'foobar' |
foob([0-9]|a+)r |
matchs 'foob0r', 'foob1r' , 'foobar', 'foobaar', 'foobaar' etc. |
Metacharacters 1 through 9 are interpreted as
backreferences. <n> matches previously matched subexpression #<n>.
Examples:
(.)1+ |
matchs 'aaaa' and 'cc'. |
(.+)1+ |
also match 'abab' and '123123' |
(['']?)(d+)1 |
matchs ''13' (in double quotes), or '4' (in single quotes) or 77 (without quotes) etc |
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 a 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 is set then range - additional include russian letter '', - additional include '', and - include all russian symbols. Sorry for foreign users, but it's set by default. If you want 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 whitespace that is 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:
This also means that if you want real whitespace or # characters in the pattern (outside a character class, where they are unaffected by /x), that you'll either have to escape them or encode them using octal or hex escapes. Taken together, these features go a long way towards making regular expressions text more readable.
(?imsxr-imsxr)
You may use it into r.e. for modifying modifiers by the fly. If this
construction inlined into subexpression, then it effects only into this
subexpression.
Examples:
(?i)Saint-Petersburg |
matchs 'Saint-petersburg' and 'Saint-Petersburg' |
(?i)Saint-(?-i) |
matchs 'Saint-Petersburg' but not 'Saint-petersburg' |
(?i)(Saint-)? |
matchs 'Saint-petersburg' and 'saint-petersburg' |
((?i)Saint-)? |
matchs 'saint-Petersburg', but not 'saint-petersburg' |
(?#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.
Useful if you have a movie and it's corresponding subtitle
(which is a frame based one) and you want to edit it but you don't know the FPS
of the movie. If this is your case then use this feature. It lets you find out
the FPS of a movie file and add it to Subtitle Workshop's list.
There are two ways in which you can use this feature:
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.
This option makes possible to directly test the subtitle
file you are working with in your favourite movie player. The movie player you
use must support command line, and a minimum of one of the subtitle
formats that Subtitle Workshop supports.
In the Settings window, go to External preview and then to 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 with the same
video.
In the Advanced section, we have other necessary things we have to configure.
Select the format in which you want the temporary subtitle file to be saved (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 creating/editing.
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 may
add other parameters, like full screen, etc. Please be sure (in most cases) to
add SUBT_FILE and VIDEO_FILE between ' ' so if one of the files
contains one (or more) spaces, it will be sent on the same parameter.
When you finished configuring all this settings, you can test the subtitle
pressing the F8 key or the 'Tools/External preview'
menu.
Tested video players:
This mode will only works (and makes sense) when you have opened a subtitle
file and a video file (see Loading
a subtitle file and Loading
a video file). If you have done both, a media player interface will be
inserted into the upper part of the main editor window. The size of it can be
adjusted by clicking the mouse on the border of the video and subtitle part of
the window (a new cursor symbol will show up) and dragging up or down . Adjusting
the video window will also resize the video itself .
Note: If you have an automatic subtitle display filter such as VobSub
installed, it will of course 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,
rename the subtitle file opened unwillingly, or uninstall the filter.
The video window is composed of the displayed video itself, a scroll bar, a set
of buttons and a set of figures giving current play time, total play time and
frames per second (FPS) of the video. The subtitle file opened 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 seek bar 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.
This feature is intended to
extract 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.
The most up to date FAQ, the official one, is available here.
You are free to send me your
comments, ideas, suggestions, language files, bug reports, etc. For contact
information, enter the 'Contact us' section in https://www.urusoft.net/.
You can also use the forum.
You can visit us on the internet in the following direction: https://www.urusoft.net.
This program is provided 'AS IS', without the guarantee of
any type. The whole risk with regard to the use of this program is taken by the
user. The author doesn't become responsible for any direct or indirect,
incidental or consequent damage, being from any flaw in the program.
This program should be distributed freely, it cannot be sold or resold,
distributed as part of any commercial package, used in a commercial, used
environment or distributed as support of a commercial, or used service and/or
distributed in any activity type with ends of lucre without the author's
previous signed authorization, with the only exception of the distribution in
magazines (read below).
Magazine publishers interested in including URUSoft programs in a CD as a part of
an edition of their magazine must send us a message via e-mail telling us that
they are going to distribute the program, detailing it's name and version and
also name and edition number of the magazine.
In any future inclusion of the program in the magazine the above mentioned
process must be repeated.
The integrity of the file of distribution of this program should be original as
it is distributed by its author. All their files should be distributed together
in the original format.
If this program is an upgrade of an old version, you will be able to use it or
to only transfer it together with the product to upgrade. All Brand Names are
Copyright of their Respective Owners. The Author of this program is NOT
associated with any company.
IF YOU DON'T ACCEPT THESE TERMS, YOU SHOULD CEASE AND DESIST TO USE THIS
PROGRAM.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1326
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved