Code

Added section re: translations
[nagiosplug.git] / doc / developer-guidelines.sgml
index c16a77162d5eb1ebf5022ddc6820f99702c3fb47..f950b8fe3f3193e9e5685412c369567dc580eaea 100644 (file)
@@ -5,68 +5,13 @@
   <bookinfo>
     <authorgroup>
       <author>
-       <firstname>Karl</firstname>
-       <surname>DeBisschop</surname>
-       <affiliation>
-         <address><email>karl@debisschop.net</email></address>
-       </affiliation>
-      </author>
-
-      <author>
-       <firstname>Ethan</firstname>
-       <surname>Galstad</surname>
-       <authorblurb>
-         <para>Author of Nagios</para>
-         <para><ulink url="http://www.nagios.org"></ulink></para>
-       </authorblurb>
-       <affiliation>
-         <address><email>netsaint@linuxbox.com</email></address>
-       </affiliation>
-      </author>
-
-      <author>
-       <firstname>Hugo</firstname>
-       <surname>Gayosso</surname>
-       <affiliation>
-         <address><email>hgayosso@gnu.org</email></address>
-       </affiliation>
-      </author>
-
-         
-       <author>
-       <firstname>Subhendu</firstname>
-       <surname>Ghosh</surname>
-       <affiliation>
-               <address><email>sghosh@sourceforge.net</email></address>
-       </affiliation>
-       </author>
-       
-       <author>
-       <firstname>Stanley</firstname>
-       <surname>Hopcroft</surname>
-       <affiliation>
-               <address><email>stanleyhopcroft@sourceforge.net</email></address>
-       </affiliation>
-       </author>       
-
-      <author>
-       <firstname>Ton</firstname>
-       <surname>Voon</surname>
-       <affiliation>
-         <address><email>tonvoon@users.sourceforge.net</email></address>
-       </affiliation>
-      </author>
-
-       <author>
-       <firstname>Jeremy T</firstname>
-       <surname>Bouse</surname>
-       <affiliation>
-         <address><email>undrgrid@users.sourceforge.net</email></address>
-       </affiliation>
+        <affiliation>
+          <orgname>Nagios Plugins Development Team</orgname>
+        </affiliation>
       </author>
     </authorgroup>
 
-    <pubdate>2002</pubdate>
+    <pubdate>2005</pubdate>
     <title>Nagios plug-in development guidelines</title>
        
     <revhistory>
@@ -77,7 +22,7 @@
     </revhistory>
 
        <copyright>
-               <year>2000 - 2004</year> 
+               <year>2000 - 2005</year> 
                <holder>Nagios Plugins Development Team</holder>
        </copyright>
 
@@ -89,8 +34,8 @@
     the plug-in developers and encourage the standarization of the
     different kind of plug-ins: C, shell, perl, python, etc.</para>
 
-        <para>Nagios Plug-in Development Guidelines Copyright (C) 2000-2003
-        (Karl DeBisschop, Ethan Galstad, Stanley Hopcroft, Subhendu Ghosh, Ton Voon, Jeremy T. Bouse)</para>
+        <para>Nagios Plug-in Development Guidelines Copyright (C) 2000-2005
+        (Nagios Plugins Team)</para>
 
         <para>Permission is granted to make and distribute verbatim
         copies of this manual provided the copyright notice and this
 
        <literallayout>
        gnu make 3.79
-       automake 1.6
-       autoconf 2.54
+       automake 1.8
+       autoconf 2.58
        gettext 0.11.5
        </literallayout>
 
                <para>It is up to third party programs to convert the Nagios plugins 
                performance data into graphs.</para>
                </section>
+
+       <section><title>Translations</title>
+       <para>If possible, use translation tools for all output. Currently, most of the core C plugins 
+       use gettext for translation. General guidelines are:</para>
+
+       <orderedlist>
+       <listitem><para>short help is not translated</para></listitem>
+       <listitem><para>long help has options in English language, but text translated</para></listitem>
+       <listitem><para>"Copyright" kept in English</para></listitem>
+       <listitem><para>copyright holder names kept in original text</para></listitem>
+       </orderedlist>
+       </section>
 </section>
 
 <section id="SysCmdAuxFiles"><title>System Commands and Auxiliary Files</title>
        <section><title>Comments</title>
        <para>You should use /* */ for comments and not // as some compilers
        do not handle the latter form.</para>
-       <para>There should not be any named credits in the source code - contributors
-       should be added 
-       into the AUTHORS file instead. The only exception to this is if a routine
-       has been copied from another source.</para>
+       <para>If you have copied a routine from another source, make sure the licence
+       from your source allows this. Add a comment referencing the ACKNOWLEDGEMENTS
+       file, where you can put more detail about the source.</para>
+       <para>For contributed code, do not add any named credits in the source code 
+       - contributors should be added into the THANKS.in file instead. 
+       </para>
        </section>
 
        <section><title>CVS comments</title>
        </para>
        <para>If the change is due to a contribution, please quote the contributor's name 
        and, if applicable, add the SourceForge Tracker number. Don't forget to 
-update the AUTHORS file.</para>
+update the THANKS.in file.</para>
+       </section>
+
+       <section><title>Translations for developers</title>
+       <para>To make the job easier for translators please follow these guidelines:</para>
+       <orderedlist>
+         <listitem><para>
+           before creating new strings, check the po/de.po file to see if a similar string
+           already exists
+         </para></listitem>
+         <listitem><para>
+           for help texts, break into individual options so that these can be reused
+           between plugins
+         </para></listitem>
+       </orderedlist>
        </section>
+
+       <section><title>Translations for translators</title>
+       <para>To create an up to date list of translatable strings, run: tools/gen_locale.sh</para>
+       </section>
+
 </section>
 
 <section id="SubmittingChanges"><title>Submission of new plugins and patches</title>
@@ -678,16 +656,21 @@ update the AUTHORS file.</para>
        </section>
 
        <section id="Newplugins"><title>New plugins</title>
-       <para>If you would like others to use your plugins and have it included in
-       the standard distribution, please include patches for the relevant
-       configuration files, in particular "configure.in". Otherwise submitted 
-       plugins will be included in the contrib directory.</para>
-       
-       <para>Plugins in the contrib directory are going to be migrated to the
-       standard plugins/plugin-scripts directory as time permits and per user
-       requests. The minimum requirements are:</para>
+
+       <para>If you would like others to use your plugins, please add it to
+       the official 3rd party plugin repository, 
+       <ulink url="http://www.nagiosexchange.org">NagiosExchange</ulink>.
+       </para>
+
+       <para>We are not accepting requests for inclusion of plugins into 
+       our distribution at the moment, but when we do, these are the minimum
+       requirements:
+       </para>
 
       <orderedlist>
+       <listitem>
+         <para>Include copyright and license information in all files</para>
+       </listitem>
        <listitem>
          <para>The standard command options are supported (--help, --version,
          --timeout, --warning, --critical)</para>
@@ -704,75 +687,21 @@ update the AUTHORS file.</para>
        </listitem>
        <listitem>
          <para>It should also follow code format guidelines, and use functions from
-utils (perl or c or sh) rather than cooking it's own</para>
+utils (perl or c or sh) rather than using its own</para>
+       </listitem>
+       <listitem>
+         <para>Includes patches to configure.in if required (via the EXTRAS list if 
+         it will only work on some platforms)</para>
+       </listitem>
+       <listitem>
+         <para>If possible, please submit a test harness. Documentation on sample
+         tests coming soon</para>
        </listitem>
       </orderedlist>
 
-       <para>New plugins should be submitted via 
-       <ulink url="http://sourceforge.net/tracker/?group_id=29880&amp;atid=541465">SourceForge's
-       tracker system for Nagiosplug new plugins</ulink> 
-       and be announced to the nagiosplug-devel mailing list.</para>
-       
-       <para>For new plugins, provide a diff to add to the EXTRAS list (configure.in) 
-       unless you are fairly sure that the plugin will work for all platforms with 
-       no non-standard software added.</para>
-
-       <para>If possible please submit a test harness. Documentation on sample
-       tests coming soon.</para>
        </section>
 
 </section>
-
-<section id="UsingSourceforge"><title>Using Sourceforge</title>
-<table id="Projectmemberaccess"><title>Project Member Access</title>
-       <tgroup cols="9">
-               <thead>
-                       <row>
-                               <entry><para>Member type</para></entry>
-                               <entry><para>CVS Access</para></entry>
-                               <entry><para>Shell Access</para></entry>
-                               <entry><para>Release Tech</para></entry>
-                               <entry><para>Tracker Manager</para></entry>
-                               <entry><para>Task Manager</para></entry>
-                               <entry><para>Forums</para></entry>
-                               <entry><para>Doc Manager</para></entry>
-                               <entry><para>News</para></entry>
-                               <entry><para>Screenshots</para></entry>
-                               <entry><para>Notes</para></entry>
-                       </row>
-               </thead>
-               <tbody>
-                       <row>
-                               <entry><para>Translator</para></entry>
-                               <entry><para>Yes</para></entry>
-                               <entry><para>Yes</para></entry>
-                               <entry><para>No</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>Add developer to CVSROOT/avail for translation files</para></entry>
-                       </row>
-                       <row>
-                               <entry><para>Developer</para></entry>
-                               <entry><para>Yes</para></entry>
-                               <entry><para>Yes</para></entry>
-                               <entry><para>No</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>A&amp;T</para></entry>
-                               <entry><para>Moderator</para></entry>
-                               <entry><para>Editor</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>-</para></entry>
-                               <entry><para>Need to set tracker access individually. Add developer to CVSROOT/avail for all files</para></entry>
-                       </row>
-               </tbody>
-       </tgroup>
-</table>
-<para>Add all members to the nagiosplug-team mailing list</para>
-</section>
 </article>
   
 </book>