Am 27.11.11 23:23, schrieb Yannick Torrès:
> 2011/11/27 Karl Pflästerer<k...@rl.pflaesterer.de>:
>>  Hi,
> 
> Hi,
> 
>>  forgive me if I ask something which had already been discussed, but I've
>>  seen nothing in the archives.
>>
>>  I try to help translating some of the docs and saw here
>>  https://edit.php.net/ this box:
>>
>>  Check for errors in /language-snippets.ent
>>
>>  The content for that box seems to get computed from tha class
>>  http://svn.php.net/repository/web/doc-editor/trunk/php/ToolsError.php
>>
>>  There is a method attributLinkTag()
>>
>>  To compare the linkend atrribute of the<link>  tags it uses a regex.
>>
>>  $reg = '/<link\s*?linkend=("|\')(.*?)("|\')\s*?>/s';
>>
>>  You see between<link and the linkend attribute only whitespace is allowed.
>>  But for example in the german translation (and also in the english
>>  documentation) some<link>  tags have another attribute between the element
>>  name and "linkend".
> 
> Could you give me an example please of this case ?

>From en/language-snippets.ent

<!ENTITY seealso.array.sorting 'The <link xmlns="http://docbook.org/ns/docbook"; 
linkend="array.sorting">comparison of array sorting functions</link>'>

<!ENTITY seealso.callback 'information about the <link 
xmlns="http://docbook.org/ns/docbook"; 
linkend="language.types.callback">callback</link> type'>

In the german translation are more examples (some of them IMHO wrong, since
they duplicate the xmlns attribute), but I'm not sure if such a simple
difference should trigger such an error.

> 
>>  An easy fix would be
>>  $reg = '/<link[^<>]+linkend=("|\')(.*?)("|\')[^<>]*>/s';
>>
>>  But that would solve only have of the problem; the other problem is that the
>>  check script needs the same order of entities in both files and it compares
>>  only the position of the found links in both match arrays. So e.g. one link
>>  more in the translation will give false matches for all following entries.
> 
> Yes it is.
> The goal here is to check each file and warn when there is only one
> difference even if this is an ordre problem (this can be a translation
> error too).

Ok. (for a file with only entity definition order shouldn't matter or?)

> 
>>  Does it make sense to rewrite that algorithm, so that it compares each
>>  entity in the english original and the translation so we get better errors?
> 
> You mean to avoid order check ?
> Perhaps we can do this yes : check the number of this tag, and check
> if there is all of this tag, even if the order is not respected.

I thought to perhaps check each entity definition; so not to do a simple
preg_match_all and compare $match_en[1] to $match_lang[1] but to compare the
linkend attribute of entity definition in en and $lang.

Then the error could be: Difference in linkend attribute in entity xyz.

  KP

Reply via email to