ddtc - ddts client tool to help translators and reviewers.
ddtc [OPTIONS] COMMAND [ARGUMENTS]
This script helps both translators and reviewers with parsing mails from the
ddts, splitting them into individual package files, sending reviews and
patching buggy translations.
Before sending back the translation or the review to the server, the script
performs a few tests on it and does not sent it if one of the following
- - number of paragraphs is different in the description and
- - line length is more than 80 characters,
- - <tab> character is found,
- - line starts with a dot (.) followed by other
It can also be run in interactive mode if no command is provided. In this case,
menus are displayed to prompt the user for commands.
Here is the basic process:
- - Receiving mail from the ddts
- Pass the whole mail (i.e. with header and Mime parts) you
received from the ddts to the standard input of this script, providing the
If it finds descriptions to translate, it creates a package.todo file
for each of them in your Base_dir/tr directory, diffing it with the
preceding you have already translated if it exists.
If it finds descriptions to review, it creates a package.todo file
for each of them in your Base_dir/rev directory. If a preceding
review exists, it diffs both and write the diff or set the description as
reviewed if there is no difference.
If it finds a bug report, it creates a package.bug file in your
Base_dir/bug directory, it merges all bug reports to ease
corrections. It also tries to detect collisions (see below).
- - Working with the files
- - Translating
- Rename the package.todo file in your Base/tr
directory into package.tr.
Edit it with your favorite text editor.
- - Reviewing
- Rename the package.todo file in your
Base_dir/rev directory into package.rev. Do not edit the
package file (with no extension), it is used internally by ddtc.
Edit it with your favorite text editor. You can add comments that will be
sent to the translator by adding lines beginning with ` >> '
(your $Comment variable contents followed by a
mandatory space character).
If a translation has already been reviewed and has been modified the script
show you the differences between both versions. Lines beginning with `
>>--' correspond to your last version you reviewed, replace
this by ` +>--' if you think the translator is still wrong.
Lines beginning with ` >>++' are the new translator's
version, replace this by ` +>++' if you agree with the
translator. Of course, if you still disagree with the translator, you can
add comments as indicated above.
- - Fixing bugs
- Rename the package.bug file in your
Base_dir/bug directory into package.fix.
Edit it with your favorite text editor. It contains all changes and comments
of the reviewers.
Lines beginning with ` >>' are comments and doesn't have to be
removed. Lines beginning with ` >>X+' are suggested
corrections, replace this by ` +>X+' if you want to validate it.
Lines beginning with ` >>--' are your last translation,
replace this by ` +>--' if you don't want to accept suggested
Run the script providing the fix command. It creates a new
package.tr file in your Base_dir/tr directory containing the
unchanged lines and the lines you have selected.
To prevent collisions (reviewers sending review based on a different version
than yours), don't send fixed descriptions too often (once a day should be
fine), retrieve your mails and parse them just before fixing, send the
fixed description as soon as possible afterward.
- - Sending files back to the ddts
- Run the script providing the mail command.
It sends descriptions from package.tr and package.rev files
back to the ddts renaming them into package.sent and closing bugs
- - Sending commands to the server
- Run the script providing the commands you want to be sent
to the server. It checks the commands and send them to the server.
- section section name
- sget package name
- get package name
- get number of packages
- review package name
- review number of packages
- getbug list of bug numbers
- btsclose list of bug numbers
- notification list of languages
In each set:
the first found command is used. The script automatically adds language,
encoding and mail address ( Mail_in
) if requested, noguide
Due to server limitation, to avoid risk of deny of service attack, you cannot
receive for more than 9 new documents at the same time. The script does not
check for this, but the server will.
you have either to define the
variable in you .ddtcrc
file, or to provide a language extension via the --lang
- - Cleaning directories
- Run the script providing the clean command.
It removes unnecessary files in ddtc directories but temporary one as this
directory should be a system wide temporary directory cleaned via system
scheduled threads, but for debugging reason.
- - Getting statistics about my work
- Run the script providing the stats command.
It prints figures based on file counts, it may not be accurate if directory
cleaning has not been made before.
- -q, --quiet
- quiet mode
- verbose, start at level $Debug + 1,
add more for more verbosity (see below)
- --verbose n
- set verbosity level to n (see below)
cc mails to one-self:
- -s, --mail-self
- send mails also to oneself
- -n, --nomail-self
- don't send mails to oneself
- -l, --lang
- language extension to use when asking for new documents to
translate or to review
- send review in special format. Ask your language
coordinator before using this option.
- send review in standard format.
- -V, --version
- print version and exit
- -h, --help
- print usage and exit
- 0 quiet
- only warnings and errors
- 1 normal
- package names, reviewer/translator names and bugs
- 2 reserved
- for internal use
- 3 debug normal
- names of subroutines
- 4 debug verbose
- names and short arguments of subroutines
- 5 debug very verbose
- names, arguments and return values of subroutines
- 9 debug don't send mails
- same as 5 but send mails to oneself instead of ddts
level 5 and 9 are really verbose, so you should direct the output to a file.
Nicolas Bertolissio <firstname.lastname@example.org>