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>
+<!-- EN-Revision: 1.16 Maintainer: jane Status: ready -->
+ </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 "]>".
-
- <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><!entity ldapref system "functions/ldap.sgml"></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>
- <chapt>Internal functions
- ...
- <b>&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: