doc/book/en/development/devcore/vreg.rst
branchstable
changeset 2175 16d3c37c5d28
parent 2172 cf8f9180e63e
child 2545 f8246ed962f6
--- a/doc/book/en/development/devcore/vreg.rst	Thu Jun 25 20:29:27 2009 +0200
+++ b/doc/book/en/development/devcore/vreg.rst	Fri Jun 26 13:51:08 2009 +0200
@@ -1,3 +1,5 @@
+.. -*- coding: utf-8 -*-
+
 The VRegistry
 --------------
 
@@ -7,21 +9,23 @@
 Details of the recording process
 ````````````````````````````````
 
-* par défaut on enregistre automatiquement tout les objets
+XXX this part needs to be updated and checked
+
+* by default all objects are registered automatically
 
-* si certains objets doivent remplacer d'autres objets ou être inclus
-  conditionnellement,
-  - enregistrement explicite en définissant la fonction `registration_callback(vreg)`
-  - appel des méthodes d'enregistrement des objets sur le vreg
+* if some objects have to replace other objects or be included only if a
+  condition is true,
+  - explicitly register the object by defining `registration_callback(vreg)`
+  - call registration methods on objects listed in the vreg registry
+
 .. note::
     Once the function `registration_callback(vreg)` is implemented, all the objects
-    need to be explicitly registered as it disables the automatic object registering.
+    have to be explicitly registered as it disables the automatic object registering.
 
-* suppression de l'ancien système quand il ne restera plus de réference au
-  module registerers dans le code des cubes existants.
+* the old registration mechanism will be removed when there will be no reference
+  left to the registerers module in cubicweb and the library of cubes.
 
-
-Examples
+Examples:
 
 .. code-block:: python
 
@@ -40,6 +44,7 @@
 
 API d'enregistrement des objets
 ```````````````````````````````
+
 .. code-block:: python
 
    register(obj, registryname=None, oid=None, clear=False)
@@ -58,7 +63,8 @@
 
 Defining selectors
 ``````````````````
-The object's selector is defined by itsd `__select__` class attribute.
+
+The object's selector is defined by its `__select__` class attribute.
 
 When two selectors are combined using the `&` operator (former `chainall`), it
 means that both should return a positive score. On success, the sum of scores is returned.
@@ -86,18 +92,20 @@
 Example
 ````````
 
-Le but final : quand on est sur un Blog, on veut que le lien rss de celui-ci pointe
-vers les entrées de ce blog, non vers l'entité blog elle-même.
+XXX this part needs to be translated
 
-L'idée générale pour résoudre ça : on définit une méthode sur les classes d'entité
+Le but final : quand on est sur un Blog, on veut que le lien rss de celui-ci pointe
+vers les entrées de ce blog, non vers l'entité blog elle-même.
+
+L'idée générale pour résoudre ça : on définit une méthode sur les classes d'entité
 qui renvoie l'url du flux rss pour l'entité en question. Avec une implémentation
-par défaut sur AnyEntity et une implémentation particulière sur Blog qui fera ce
+par défaut sur AnyEntity et une implémentation particulière sur Blog qui fera ce
 qu'on veut.
 
-La limitation : on est embêté dans le cas ou par ex. on a un result set qui contient
+La limitation : on est embêté dans le cas ou par ex. on a un result set qui contient
 plusieurs entités Blog (ou autre chose), car on ne sait pas sur quelle entité appeler
 la méthode sus-citée. Dans ce cas, on va conserver le comportement actuel (eg appel
-à limited_rql)
+à limited_rql)
 
 Donc : on veut deux cas ici, l'un pour un rset qui contient une et une seule entité,
 l'autre pour un rset qui contient plusieurs entité.
@@ -116,7 +124,7 @@
   pour voir le détail)
 * non_final_entity, qui filtre sur des rset contenant une liste d'entité non finale
 
-ça correspond donc à notre 2eme cas. Reste à fournir un composant plus spécifique
+ça correspond donc à notre 2eme cas. Reste à fournir un composant plus spécifique
 pour le 1er cas ::
 
   class EntityRSSIconBox(RSSIconBox):
@@ -130,11 +138,11 @@
 non sélectionnable). Donc ici, sur un rset avec plusieurs entités, onelinerset_selector
 rendra la classe EntityRSSIconBox non sélectionnable, et on obtiendra bien la
 classe RSSIconBox. Pour un rset avec une entité, la classe EntityRSSIconBox aura un
-score supérieur à RSSIconBox et c'est donc bien elle qui sera sélectionnée.
+score supérieur à RSSIconBox et c'est donc bien elle qui sera sélectionnée.
 
-Voili voilou, il reste donc pour finir tout ça :
+Voili voilou, il reste donc pour finir tout ça :
 
-* à définir le contenu de la méthode call de EntityRSSIconBox
+* à définir le contenu de la méthode call de EntityRSSIconBox
 * fournir l'implémentation par défaut de la méthode renvoyant l'url du flux rss sur
   AnyEntity
 * surcharger cette methode dans blog.Blog
@@ -144,8 +152,8 @@
 ```````````````````````
 
 Il faut utiliser les sélecteurs pour faire des choses différentes en
-fonction de ce qu'on a en entrée. Dès qu'on a un "if" qui teste la
-nature de `self.rset` dans un objet, il faut très sérieusement se
+fonction de ce qu'on a en entrée. Dès qu'on a un "if" qui teste la
+nature de `self.rset` dans un objet, il faut très sérieusement se
 poser la question s'il ne vaut pas mieux avoir deux objets différent
 avec des sélecteurs approprié.