goba            Mon Oct 22 08:00:26 2001 EDT

  Modified files:              
    /phpdoc/howto       cvs.xml howto.ent howto.xml tools.xml working.xml 
  Log:
  Adding README.translators content, and much, much more :))
  
  Information for translators:
  
   - Starting a new translation (from README.translation)
   - Joining an existing translation
   - Practical advices for translators (a must read :)
   - Revision tracking (Translators, Revision comments, and status.php)
  
  Information about mailing lists:
  
   - Long description and access point listings for phpdoc
   - Note about php-notes
  
  Now all README type files except make_chm.README are in the
  HOWTO. make_chm.README will be obsolote, as there will come
  a new method of generating CHM files (now beta), so I'll not
  put the current contents into the HOWTO.
  
  
  
Index: phpdoc/howto/cvs.xml
diff -u phpdoc/howto/cvs.xml:1.1 phpdoc/howto/cvs.xml:1.2
--- phpdoc/howto/cvs.xml:1.1    Sun Oct 21 10:17:00 2001
+++ phpdoc/howto/cvs.xml        Mon Oct 22 08:00:26 2001
@@ -29,8 +29,9 @@
    changed. The CVS server stores the history of files with
    these commit messages. Everybody can then see what was
    modified by you, because all modifications generate a diff
-   posted to the phpdoc mailing list, and the history is also
-   viewable with a CVS client or the web interface at
+   posted to the <link linkend="chapter-maillist">mailing
+   list</link>, and the history is also viewable with a CVS
+   client or the web interface at
    <ulink url="&url.php.cvs;">&url.php.cvs;</ulink>. You can
    also delete a file or add one with your CVS client,
    if you see it is needed.
@@ -408,7 +409,7 @@
   </sect1>
 
   <sect1 id="cvs-add">
-   <title>Adding files</title> 
+   <title>Adding files or directories</title> 
 
    <para>
     It is sometimes needed to add files to the English files
Index: phpdoc/howto/howto.ent
diff -u phpdoc/howto/howto.ent:1.8 phpdoc/howto/howto.ent:1.9
--- phpdoc/howto/howto.ent:1.8  Sun Oct 21 10:17:00 2001
+++ phpdoc/howto/howto.ent      Mon Oct 22 08:00:26 2001
@@ -59,6 +59,19 @@
 <!ENTITY url.xsl.xep        "http://www.renderx.com/";>
 <!ENTITY url.sunjava        "http://java.sun.com/";>
 
+<!-- For Working section -->
+<!ENTITY url.langcodes      "http://www.unicode.org/unicode/onlinedat/languages.html";>
+<!ENTITY url.buildlog.de    "http://www.php.net/manual/de/build.log";>
+<!ENTITY url.listarchive    "http://marc.theaimsgroup.com/?l=phpdoc";>
+<!ENTITY url.listnews       "news://news.php.net/php.doc";>
+<!ENTITY url.listnewshttp   "http://news.php.net/group.php?group=php.doc";>
+<!ENTITY url.docsubscribe   "[EMAIL PROTECTED]">
+<!ENTITY url.docunsubscribe "[EMAIL PROTECTED]">
+<!ENTITY url.support        "http://www.php.net/support.php";>
+<!ENTITY url.status         "http://toye.php.net/~rasmus/status.php";>
+<!ENTITY url.status.hu      "http://toye.php.net/~rasmus/status.php?l=hu";>
+
+
 <!-- For Misc section -->
 <!ENTITY url.zend.phpfunc "http://www.zend.com/phpfunc/";>
 
Index: phpdoc/howto/howto.xml
diff -u phpdoc/howto/howto.xml:1.14 phpdoc/howto/howto.xml:1.15
--- phpdoc/howto/howto.xml:1.14 Sun Oct 21 10:17:00 2001
+++ phpdoc/howto/howto.xml      Mon Oct 22 08:00:26 2001
@@ -19,7 +19,6 @@
 <!-- TODO
 
   Files to incorporate:
-    README.translations
     make_chm.README
     
   Sections need to be added:
Index: phpdoc/howto/tools.xml
diff -u phpdoc/howto/tools.xml:1.1 phpdoc/howto/tools.xml:1.2
--- phpdoc/howto/tools.xml:1.1  Sun Oct 21 10:17:00 2001
+++ phpdoc/howto/tools.xml      Mon Oct 22 08:00:26 2001
@@ -221,8 +221,9 @@
      editors, such as XML Spy, because the often friendly auto-indent,
      and optimize features can make the XML files so different from
      the one you started the work with, that the diff posted to our
-     mailing list and used by translators will be useless. Emacs
-     is also available for Windows if you would like to give it a try ;)
+     <link linkend="chapter-maillist">mailing list</link> and used
+     by translators will be useless. Emacs is also available for
+     Windows if you would like to give it a try ;)
     </para>
    
     <para>
Index: phpdoc/howto/working.xml
diff -u phpdoc/howto/working.xml:1.1 phpdoc/howto/working.xml:1.2
--- phpdoc/howto/working.xml:1.1        Sun Oct 21 10:17:00 2001
+++ phpdoc/howto/working.xml    Mon Oct 22 08:00:26 2001
@@ -454,6 +454,464 @@
   </para>
  </chapter>
 
+ <chapter id="chapter-translation">
+  <title>Information for Translators</title>
+
+  <para>
+   There are many active translations out there of the PHP
+   documentation. Some lanaguages are being maintaned by
+   a group of translators (eg. the German), some are one person
+   projects (eg. the Japanese). There are quite many things for
+   translators two know, though these are simple.
+  </para>
+  
+  <sect1 id="translation-starting">
+   <title>Staring a New Translation</title>
+   <para>
+    Starting a new language translation comes down to
+    the following simple steps now.
+    <itemizedlist>
+     <listitem>
+      <simpara>
+       Consult the <link linkend="chapter-maillist">mailing
+       list</link> to see if the translation is already in progress.
+       If it is, disregard the following and coordinate with the
+       other translators on the list.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <link linkend="cvs-account">Ask for a CVS account</link>.
+       Mention, that you would like to start a new translation.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Create a sudirectory with the appropriate language
+       code, or ask for help about how you can do this on the
+       list. Appropriate languages codes can be found at
+       <ulink url="&url.langcodes;">&url.langcodes;</ulink>.
+       See the CVS chapter about <link linkend="cvs-add">how
+       to add a file or directory</link>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Copy <filename>en/language-defs.ent</filename> and
+       <filename>en/language-snippets.ent</filename> to the
+       new directory and translate the contents of them.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Copy over files from the English tree and start to
+       work on them, (do not check in untranslated files)
+       and rerun configure each time you add a file.
+       See the section about
+       <link linkend="translation-revtrack">revision
+       tracking</link> for help about
+       how can you ease your work of tracking the English
+       versions, and your languages versions.
+      </simpara>
+     </listitem>
+    </itemizedlist>
+   </para>
+   <para>
+    Some important issues to consider when building
+    a new translation:
+    <itemizedlist>
+     <listitem>
+      <simpara>
+       Can you set up and translate the whol manual
+       yourself? If not, can you set up a team to
+       work on the language?
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Have you made sure that your language or glyph
+       (lettering, font, or characters) is supported
+       by the DocBook stylesheets? Please ask on the
+       <link linkend="chapter-maillist">mailing list</link>
+       if you don't know.
+      </simpara>
+     </listitem>
+    </itemizedlist>
+   </para>
+  </sect1>
+
+  <sect1 id="translation-joining">
+   <title>Joining To a Translation</title>
+   <para>
+    If you see that a manual for your language is set
+    up, and you would like to join the group, please
+    ask on the <link linkend="chapter-maillist">mailing
+    list</link> about who is reponsible to manage that
+    translation.
+   </para>
+   <para>
+    If you are new to the PHP project, and you have no
+    CVS account, you need to <link linkend="cvs-account">request
+    one account</link>, before you can join the work. Although
+    there are some translations where just a few people have
+    CVS accounts, and they are responsible for comitting the
+    other's works, this may not be ideal.
+   </para>
+  </sect1>
+
+  <sect1 id="translation-practical">
+   <title>Practical Advices for Translators</title>
+   <para>
+    Here are some some advices we collected for translators:
+    <itemizedlist>
+     <listitem>
+      <simpara>
+       Only commit translated files in your language's directory.
+       The build process is responsible for adding English
+       files in place of the files you have not committed.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Use a system to coordinate with the translators
+       in your language. Currently we have two systems
+       used paralelly, the Translators files and the
+       Revision comments. See the section about
+       <link linkend="translation-revtrack">revision
+       tracking</link> to learn more about this subject.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       While translating, you will find errors in the
+       English manual. If you are sure about an error,
+       that should be corrected, please correct the
+       found errors yourself. If you are not sure,
+       whether you found an error or not, please ask
+       on the <link linkend="chapter-maillist">mailing
+       list</link>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       We have the global entities used all over
+       the manuals in <filename>global.ent</filename>.
+       If you would like to define entities only used
+       in your language, an ideal place for these
+       is <filename>your_language/language-defs.ent</filename>.
+       See <filename>hu/language-defs.ent</filename> for
+       an example.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Always make sure, that the modifications you
+       made to your language's files, are correct.
+       You may introduce illegal characters. Please
+       always do a <link linkend="chapter-validating">make
+       test</link> before commiting. Introducing an
+       error in your languages manual can stop the
+       automatic updates online until you correct the
+       error.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       If your manual is online at the PHP mirror
+       sites, you can check out the building log
+       of the several downloadable formats and
+       online manuals by downloading the
+       <filename>build.log</filename> file of your
+       language. For the German translation, this file is:
+       <ulink url="&url.buildlog.de;">&url.buildlog.de;</ulink>.
+       Substitute "de" with your own language code to
+       see the information about your manual. This file
+       provides you information about the build times,
+       and errors (if there were any). If the manual is
+       not updated online, it is a good idea, to look
+       into this file and see what was the error.
+      </simpara>
+     </listitem>
+    </itemizedlist>
+   </para>
+  </sect1>
+  
+  <sect1 id="translation-revtrack">
+   <title>Revision Tracking</title>
+   <para>
+    Working on the translations is not just translating
+    an English file and commiting the results. Much of
+    the work is needed to update the already translated
+    ones, to get in sync with the content of the English
+    files. To follow the modifications in the English
+    tree, you should subscribe to the
+    <link linkend="chapter-maillist">mailing list</link>,
+    or read the archives. If you never update your files,
+    the translations can get useless.
+   </para>
+   <para>
+    Updating a foreign language file can get difficult,
+    as you may not know when and who translated that file,
+    so you may not know where you should look for the
+    updates needed. We have two (plus one) system for tracking
+    the revisions and modification dates of the files in
+    <literal>phpdoc</literal>.
+   </para>
+
+   <sect2 id="translation-revcheck-translators">
+    <title>The Translators Files</title>
+    
+    <para>
+     Nearly all translations are currently using a
+     <filename>Translators</filename> file just in the
+     root of their translation's tree. This file
+     can contain the names, email addresses, and CVS
+     user names of the contributors of this translation,
+     and the list of files translated.
+    </para>
+    
+    <para>
+     Along with the XML file names, associations between
+     translators and files, revision numbers, and status
+     information can also be stored. One sample Translators
+     file, for the imaginary xx language can look like this:
+     <programlisting>
+=============================================================================
+CVS User  Name                 Contact email address
+=============================================================================
+joedoe    Joe Doe              [EMAIL PROTECTED]
+jane      Jane Smith           [EMAIL PROTECTED]
+...
+
+=============================================================================
+Filename                    Translator      Revision
+=============================================================================
+bookinfo.xml                jane            1.16
+language-defs.ent           jane            1.7
+language-snippets.ent       joedoe          1.8
+preface.xml
+------- appendices ----------------------------------------------------------
+aliases.xml                 joedoe          working
+debugger.xml
+escaping.xml
+history.xml                 jane            1.2
+...
+     </programlisting>
+     In this example you can see the listing of translators, and
+     the first few lines of the list of files. Here you can store
+     the assignment of the file, the revision number (what English
+     file this translation was based on), and if there is no revision
+     number yet, a status (eg. working).
+    </para>
+    <para>
+     When it is time to update a file (eg. bookinfo.xml jumped to
+     1.20 as time passed), you can ask for a diff between 1.16 and
+     1.20, and you'll see what modifications you need to port to
+     the translated file. You can ask for diffs by using the diff
+     CVS command, or using the web interface at <ulink url="&url.php.cvs;">
+     &url.php.cvs;</ulink>. The web interface can generate really
+     visual diffs, so you can esaily spot what needs to be deleted,
+     added and modified where.
+    </para>
+    <para>
+     If you choose this method, do not forget to update the revision
+     numbers stored in the <filename>Translators</filename> as
+     you update files in your language's tree.
+    </para>
+   </sect2>
+
+   <sect2 id="translation-revcheck-comments">
+    <title>The Revision Comments</title>
+    
+    <para>
+     There is another way of tracking versions instead of
+     using the method descibed above. You can decide yourself,
+     as this is the better method for you or not. Some
+     languages use the Revision comments and Translators files
+     paralelly, some use only one of these. It is better to
+     decide, and not to use two systems, as things can get
+     messy this way.
+    </para>
+    <para>
+     Instead of storing all responsibilities in a central file,
+     the revision comment system stores them in the files they
+     provide information about. Consider the <link
+     linkend="translation-revcheck-translators">Translators</link>
+     example above. Now we spread the revision and association
+     informations in the files mentioned there. Let's see what
+     would be in the header of the <filename>bookinfo.xml</filename>
+     file in this case:
+     <programlisting>
+&lt;!-- EN-Revision: 1.16 Maintainer: jane Status: ready --&gt;
+     </programlisting>
+    </para>
+    <para>
+     You can see we loose no information here, but we can also
+     add some other status information in the case it is needed
+     (eg. "partial" for incomplete translations). This revision
+     comment system is basically about storing the information in
+     the XML files, and not in a central place.
+    </para>
+    <para>
+     Currently all the three information is needed. Maintainer
+     is intended to be a CVS user name, status can be anything
+     without a space. Note, that this header is not updated
+     by CVS (as <literal>$Revision</literal> is updated
+     automatically). This is only updated when you edit the
+     contents of the comment.
+    </para>
+    <para>
+     You may see this as a good thing, but using these comments,
+     you loose the quick look on the whole list of your
+     files. No, you do not loose this, and get much more! If
+     you would like to build a list similar to the
+     <filename>Translators</filename> file given above, you
+     can go to the scripts subdirectory of phpdoc, and run:
+     <programlisting>
+./revcheck.php xx
+     </programlisting>
+     Here <literal>xx</literal> is the imaginary language code.
+     After running this script you'll get a
+     <filename>revcheck.html</filename> in the same directory.
+     You can find revision comparisions and links to diffs
+     for all the files in this language. You can also
+     add a furter restriction parameter, the maintainer name,
+     so the script will only list the files corresponding to
+     the given maintaner. This HTML files gives you much more
+     than the <filename>Translators</filename> file. See it
+     yourself for example with the Hungarian translation (code:
+     hu).
+    </para>
+   </sect2>
+
+   <sect2 id="translation-revcheck-status">
+    <title>The Online Status Script</title>
+    
+    <para>
+     Rasmus Lerdorf developed on online status checking script.
+     This script is most useful for files without revision comments,
+     so if you use the Revision comments, use the specific script
+     <link linkend="translation-revcheck-comments">mentioned above</link>.
+    </para>
+    <para>
+     You can access the script at: <ulink url="&url.status;">&url.status;</ulink>.
+     Visiting this page, you need to wait for some time to generate,
+     as it builds a whole table of file and dates information about
+     all translations. If you would like to restrict the table to only
+     one translation, you can provide the <literal>?l=langcode</literal>
+     URL parameter, so to view the Hungarian status, visit:
+     <ulink url="&url.status.hu;">&url.status.hu;</ulink>.
+    </para>
+    <para>
+     This script tries to decide whether a file is up to date or note
+     from the last modification date. The results are not correct if
+     you modify your languages file, fixing typos, as this script thinks
+     you modified the file to get in sync with the English one, and will
+     mark your file as up to date. Although this script can help some
+     to track files without <link linkend="translation-revcheck-comments">revision
+     comments</link>, if you use revision comments, you can get more
+     accurate results than this script, and much more than that.
+    </para>
+   </sect2>
+  </sect1>
+ </chapter>
+
+ <chapter id="chapter-maillist">
+  <title>The phpdoc and php-notes Mailing Lists</title>
+  
+  <para>
+   The XML content of <literal>phpdoc</literal> files is
+   updated from day to day, and on busy days from hour to
+   hour. To follow the updates in the English tree and
+   any other language's tree and also participate in
+   the discussions, it is highly recommended that you
+   subscribe to the <email>&email.phpdoc;</email> mailing
+   list. You can subscribe by sending a blank mail to
+   <ulink url="&url.docsubscribe;">&url.docsubscribe;</ulink>.
+   Similarly you can unsubscribe by sending a blank mail to
+   <ulink url="&url.docunsubscribe;">&url.docunsubscribe;</ulink>.
+   There is a web interface for these tasks at <ulink
+   url="&url.support;">&url.support;</ulink>.
+  </para>
+  <para>
+   Currently this list receives messages from the following senders:
+   <itemizedlist>
+    <listitem>
+     <simpara>
+      Members of the list: discussion threads about anything
+      related to the phpdoc team.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      The CVS server: diffs about every small modification
+      in the English or any languages XML files, or other
+      support files placed in the <literal>phpdoc</literal>
+      repository.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      The PHP bug tracking system: bug follow ups classified
+      as "Documentation Problem" in the bug system.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Other senders: the posting to list is not restricted,
+      so people not on the list can also post messages. This
+      way we got bug reports and suggestions by plain mails
+      on the list.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      SPAM: this is not a common piece of mail, thanks to
+      or SPAM protection system.
+     </simpara>
+    </listitem>
+   </itemizedlist>
+   This long list of mail types can be scaring for someone,
+   who can't process the many mails posted to the list. For
+   this reason the team is thinking about separating the list
+   to language specific list, so commits in the foreign
+   languages trees won't posted to the main list. Although
+   this is just a plan know.
+  </para>
+  <para>
+   If you can't handle the load of this mailing list in
+   your mailbox, you can read the messages three ways:
+   <itemizedlist>
+    <listitem>
+     <simpara>
+      On the web, in the archives at
+      <ulink url="&url.listarchive;">&url.listarchive;</ulink>
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      With a news reader at
+      <ulink url="&url.listnews;">&url.listnews;</ulink>
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      On the web, with the experimental news interface at
+      <ulink url="&url.listnewshttp;">&url.listnewshttp;</ulink>
+     </simpara>
+    </listitem>
+   </itemizedlist>
+  </para>
+  <para>
+   There is also a mailing list names <literal>php-notes</literal>.
+   You can access it the same way as the <literal>phpdoc</literal>
+   list (just substitute <literal>phpdoc</literal> with
+   <literal>php-notes</literal>). This list is the place where
+   all the manual notes are posted. You may consider subscribing
+   to this mailing list if you would like to help manage the notes.
+  </para>
+ </chapter>
+
  <chapter id="chapter-misc">
   <title>Miscellaneous Notes</title>
 
@@ -462,85 +920,6 @@
    http://www.zend.com/phpfunc/, etc.
   </para>
  </chapter>
-
- <!--
- 
-   ! These paras are from the howto.xml made by Stig (this
-   ! is actually HTML). Can be useful to make the new XML
-   ! file section.
- 
-  <a name="connecting.phpdoc"></a><h2>3.1. New SGML files</h2>
-
-   The main file for the documentation is <tt>manual.sgml</tt>.  This
-   file uses <i>entities</i> (can be compared to a combination of #define
-   and #include in C) to include text from other files.  The entities
-   that include the PHPDOC files are defined in the <i>preamble</i> of
-  <tt>manual.sgml</tt>, which is the section between the "[" character
-   on the first (DOCTYPE) line and "]&gt;".
-
-  <p> Steps involved in connecting a new PHPDOC file:
-
-  <ol>
-  <li> Let us say you have written functions/ldap.phpdoc.  You should
-   then add this to the preamble:
-  <pre>
-  <b>&lt;!entity ldapref system "functions/ldap.sgml"&gt;</b>
-  </pre>
-
-   This tells the SGML parser that when "ldapref" is referenced it
-   should read the file <tt>functions/ldap.sgml</tt>.<p> <em>Note
-   that the file name extension used here is not <tt>.phpdoc</tt>,
-   but <tt>.sgml</tt>.  The Makefile handles the conversion.</em>
-  <p>
-
-  <li> Refer to the <i>ldapref</i> entity where you want to include it.
-   Keep in mind that PHPDOC documents are converted into LINUXDOC
-   sections.  Internal functions should be added to the "internal
-   functions" chapter in <tt>chapters/functions.sgml</tt>.  Add
-   something like this (the bold part is what to add):
-  <pre>
-   &lt;chapt&gt;Internal functions
-   ...
-  <b>&amp;ldapref;</b>
-   ...
-  </pre>
-
-  <li> Then, to make sure the .phpdoc file is converted to .sgml,
-   you have to tell make about it.  Add the <u>.sgml</u> file to
-   the FUNCREF variable in <tt>Makefile.in</tt>.  Example (the bold
-   text is the change):
-  <pre>
-   FUNCREF=functions/oracle.sgml \
-  <b>functions/ldap.sgml \</b>
-   functions/math.sgml \
-   functions/mysql.sgml \
-   functions/pgsql.sgml \
-   functions/strings.sgml \
-   functions/adabas.sgml
-  </pre>
-
-  <li> Finally, regenerate <tt>Makefile</tt>:
-  <pre>
-   (cd .. ; ./config.status)
-  </pre>
-
-  </ol>
-
-  <a name="connecting.labels"></a><h2>3.2. Label name conventions</h2>
-
-   When making or refering to labels in the LINUXDOC files, there are
-   some conventions that should kept:
-
-  <ul>
-  <li> Internal functions have labels of the form
-  <tt>func:<i>function_name</i></tt>.
-  <li> Arguments to configure (when installing) have labels like the
-   argument names.  For example, the -with-system-regex option has
-   the label <tt>with_system_regex</tt>
-  </ul>
-  <hr>
-
-   -->
 
 <!-- Keep this comment at the end of the file
 Local variables:


Reply via email to