.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DDTC.1 1" .TH DDTC.1 1 "2004-06-18" "perl v5.22.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ddtc \- ddts client tool to help translators and reviewers. .SH "SYNOPSIS" .IX Header "SYNOPSIS" ddtc [\s-1OPTIONS\s0] \s-1COMMAND\s0 [\s-1ARGUMENTS\s0] .SH "DESCRIPTION" .IX Header "DESCRIPTION" 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. .PP 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 succeeds: .IP "\- number of paragraphs is different in the description and its translation," 4 .IX Item "- number of paragraphs is different in the description and its translation," .PD 0 .IP "\- line length is more than 80 characters," 4 .IX Item "- line length is more than 80 characters," .IP "\- \fI\fR character is found," 4 .IX Item "- character is found," .IP "\- line starts with a dot (\fI.\fR) followed by other characters." 4 .IX Item "- line starts with a dot (.) followed by other characters." .PD .PP 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. .SH "COMMANDS" .IX Header "COMMANDS" Here is the basic process: .IP "\- Receiving mail from the ddts" 4 .IX Item "- 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 \fIparse\fR command. .Sp If it finds descriptions to translate, it creates a \fIpackage.todo\fR file for each of them in your \fIBase_dir/tr\fR directory, diffing it with the preceding you have already translated if it exists. .Sp If it finds descriptions to review, it creates a \fIpackage.todo\fR file for each of them in your \fIBase_dir/rev\fR directory. If a preceding review exists, it diffs both and write the diff or set the description as reviewed if there is no difference. .Sp If it finds a bug report, it creates a \fIpackage.bug\fR file in your \&\fIBase_dir/bug\fR directory, it merges all bug reports to ease corrections. It also tries to detect collisions (see below). .IP "\- Working with the files" 4 .IX Item "- Working with the files" .RS 4 .PD 0 .IP "\- Translating" 4 .IX Item "- Translating" .PD Rename the \fIpackage.todo\fR file in your \fIBase/tr\fR directory into \&\fIpackage.tr\fR. .Sp Edit it with your favorite text editor. .IP "\- Reviewing" 4 .IX Item "- Reviewing" Rename the \fIpackage.todo\fR file in your \fIBase_dir/rev\fR directory into \&\fIpackage.rev\fR. Do not edit the \fIpackage\fR file (with no extension), it is used internally by ddtc. .Sp Edit it with your favorite text editor. You can add comments that will be sent to the translator by adding lines beginning with `\fB>> \fR' (your \&\fI\f(CI$Comment\fI\fR variable contents followed by a mandatory space character). .Sp If a translation has already been reviewed and has been modified the script show you the differences between both versions. Lines beginning with `\fB>>\-\-\fR' correspond to your last version you reviewed, replace this by `\fB+>\-\-\fR' if you think the translator is still wrong. Lines beginning with `\fB>>++\fR' are the new translator's version, replace this by `\fB+>++\fR' if you agree with the translator. Of course, if you still disagree with the translator, you can add comments as indicated above. .IP "\- Fixing bugs" 4 .IX Item "- Fixing bugs" Rename the \fIpackage.bug\fR file in your \fIBase_dir/bug\fR directory into \&\fIpackage.fix\fR. .Sp Edit it with your favorite text editor. It contains all changes and comments of the reviewers. .Sp Lines beginning with `\fB>>\fR' are comments and doesn't have to be removed. Lines beginning with `\fB>>X+\fR' are suggested corrections, replace this by `\fB+>X+\fR' if you want to validate it. Lines beginning with `\fB>>\-\-\fR' are your last translation, replace this by `\fB+>\-\-\fR' if you don't want to accept suggested corrections. .Sp Run the script providing the \fIfix\fR command. It creates a new \fIpackage.tr\fR file in your \fIBase_dir/tr\fR directory containing the unchanged lines and the lines you have selected. .Sp 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. .RE .RS 4 .RE .IP "\- Sending files back to the ddts" 4 .IX Item "- Sending files back to the ddts" Run the script providing the \fImail\fR command. .Sp It sends descriptions from \fIpackage.tr\fR and \fIpackage.rev\fR files back to the ddts renaming them into \fIpackage.sent\fR and closing bugs if necessary. .IP "\- Sending commands to the server" 4 .IX Item "- 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. .Sp Available commands: .RS 4 .IP "section \fIsection name\fR" 4 .IX Item "section section name" .PD 0 .IP "sget \fIpackage name\fR" 4 .IX Item "sget package name" .IP "get \fIpackage name\fR" 4 .IX Item "get package name" .IP "get \fInumber of packages\fR" 4 .IX Item "get number of packages" .IP "review \fIpackage name\fR" 4 .IX Item "review package name" .IP "review \fInumber of packages\fR" 4 .IX Item "review number of packages" .IP "getbug \fIlist of bug numbers\fR" 4 .IX Item "getbug list of bug numbers" .IP "btsclose \fIlist of bug numbers\fR" 4 .IX Item "btsclose list of bug numbers" .IP "notification \fIlist of languages\fR" 4 .IX Item "notification list of languages" .IP "listtranslatedpackages" 4 .IX Item "listtranslatedpackages" .IP "status" 4 .IX Item "status" .IP "noneveraguide" 4 .IX Item "noneveraguide" .IP "neveraguide" 4 .IX Item "neveraguide" .IP "noguide" 4 .IX Item "noguide" .IP "guide" 4 .IX Item "guide" .RE .RS 4 .PD .Sp In each set: \fIsget\fR/\fIget\fR/\fIreview\fR/\fIgetbug\fR/\fIbtsclose\fR/\fInotification\fR, \&\fInoneveraguide\fR/\fIneveraguide\fR and \fInoguide\fR/\fIguide\fR, only the first found command is used. The script automatically adds language, encoding and mail address (\fIMail_in\fR) if requested, \fInoguide\fR is default. .Sp 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. .Sp For \fIsget\fR, \fIget\fR, \fIreview\fR, \fIstatus\fR and \fIlisttranslatedpackages\fR you have either to define the \fI\f(CI$Language\fI\fR variable in you \fI.ddtcrc\fR configuration file, or to provide a language extension via the \fI\-\-lang\fR or \fI\-l\fR option. .RE .IP "\- Cleaning directories" 4 .IX Item "- Cleaning directories" Run the script providing the \fIclean\fR command. .Sp 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. .IP "\- Getting statistics about my work" 4 .IX Item "- Getting statistics about my work" Run the script providing the \fIstats\fR command. .Sp It prints figures based on file counts, it may not be accurate if directory cleaning has not been made before. .SH "OPTIONS" .IX Header "OPTIONS" Verbosity level: .IP "\fI\-q, \-\-quiet\fR" 4 .IX Item "-q, --quiet" quiet mode .IP "\fI\-v\fR" 4 .IX Item "-v" verbose, start at level \fI\f(CI$Debug\fI + 1\fR, add more for more verbosity (see below) .IP "\fI\-\-verbose n\fR" 4 .IX Item "--verbose n" set verbosity level to \fIn\fR (see below) .PP cc mails to one-self: .IP "\fI\-s, \-\-mail\-self\fR" 4 .IX Item "-s, --mail-self" send mails also to oneself .IP "\fI\-n, \-\-nomail\-self\fR" 4 .IX Item "-n, --nomail-self" don't send mails to oneself .PP other: .IP "\fI\-l, \-\-lang\fR" 4 .IX Item "-l, --lang" language extension to use when asking for new documents to translate or to review .IP "\fI\-\-ddtc\-bug\fR" 4 .IX Item "--ddtc-bug" send review in special format. Ask your language coordinator before using this option. .IP "\fI\-\-noddtc\-bug\fR" 4 .IX Item "--noddtc-bug" send review in standard format. .IP "\fI\-V, \-\-version\fR" 4 .IX Item "-V, --version" print version and exit .IP "\fI\-h, \-\-help\fR" 4 .IX Item "-h, --help" print usage and exit .SS "Verbosity Level" .IX Subsection "Verbosity Level" .IP "\fI0\fR quiet" 4 .IX Item "0 quiet" only warnings and errors .IP "\fI1\fR normal" 4 .IX Item "1 normal" package names, reviewer/translator names and bugs numbers .IP "\fI2\fR reserved" 4 .IX Item "2 reserved" for internal use .IP "\fI3\fR debug normal" 4 .IX Item "3 debug normal" names of subroutines .IP "\fI4\fR debug verbose" 4 .IX Item "4 debug verbose" names and short arguments of subroutines .IP "\fI5\fR debug very verbose" 4 .IX Item "5 debug very verbose" names, arguments and return values of subroutines .IP "\fI9\fR debug don't send mails" 4 .IX Item "9 debug don't send mails" same as 5 but send mails to oneself instead of ddts .PP level 5 and 9 are really verbose, so you should direct the output to a file. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIddtcrc\fR\|(5). .PP http://ddtp.debian.org/ddtp\-text/misc/ddts\-faq.txt. .PP http://ddtp.debian.org/ddtp\-text/guides/guide.txt. .PP http://ddtp.debian.org/ddtp\-text/guides/review.txt. .SH "AUTHOR" .IX Header "AUTHOR" Nicolas Bertolissio