[jboss-cvs] JBossAS SVN: r90605 - projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 25 18:57:07 EDT 2009


Author: croe at redhat.com
Date: 2009-06-25 18:57:06 -0400 (Thu, 25 Jun 2009)
New Revision: 90605

Modified:
   projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po
Log:
transaltion in progress

Modified: projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po
===================================================================
--- projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po	2009-06-25 22:51:57 UTC (rev 90604)
+++ projects/docs/enterprise/4.3.4.1/Hibernate/Hibernate_Search/fr-FR/Mapping.po	2009-06-25 22:57:06 UTC (rev 90605)
@@ -8,7 +8,7 @@
 "Project-Id-Version: Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-06-18 00:50+0000\n"
-"PO-Revision-Date: 2009-06-24 16:32+1000\n"
+"PO-Revision-Date: 2009-06-25 16:44+1000\n"
 "Last-Translator: Corina Roe <croe at redhat.com>\n"
 "Language-Team: French <i18 at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -30,19 +30,19 @@
 "some Java annotations. There is no need for xml mapping files nor a list of "
 "indexed entities. The list is discovered at startup by scanning the "
 "Hibernate mapped entities."
-msgstr "Toutes les informations de métadonnées dont on a besoin pour les entités d'index sont décrites dans des annotations Java. xxxxx"
+msgstr "Toutes les informations de métadonnées dont on a besoin pour les entités d'index sont décrites dans des annotations Java. Il n'y a nul besoin de fichiers de mappage xml, ni de liste d'entités indexées. La liste est révélée au démarrage en balayant les entités mappées Hibernate."
 
 #. Tag: title
 #: Mapping.xml:14
 #, no-c-format
 msgid "Mapping an entity"
-msgstr ""
+msgstr "Mappage d'une entité"
 
 #. Tag: title
 #: Mapping.xml:17
 #, no-c-format
 msgid "Basic mapping"
-msgstr ""
+msgstr "Mappage de base"
 
 #. Tag: para
 #: Mapping.xml:19
@@ -52,7 +52,7 @@
 "annotating the class with <literal>@Indexed</literal> (all entities not "
 "annotated with <literal>@Indexed</literal> will be ignored by the indexing "
 "process):"
-msgstr ""
+msgstr "Tout d'abord, nous devons déclarer une classe persistante indexable. Cela est effectué en annotant la classe par <literal>@Indexed</literal> (toutes les entrées qui ne sont pas annotées par <literal>@Indexed</literal> seront ignorées par le processus d'indexation) :"
 
 #. Tag: programlisting
 #: Mapping.xml:24
@@ -65,6 +65,12 @@
 "                                ...\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                <emphasis role=\"bold\">@Indexed(index="
+"\"indexes/essays\")</emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:26
@@ -76,7 +82,7 @@
 "<literal>hibernate.search.default.indexBase</literal> property in your "
 "configuration file. Each entity instance will be represented by a Lucene "
 "<classname>Document</classname> inside the given index (aka Directory)."
-msgstr ""
+msgstr "L'attribut <literal>index</literal> indique à Hibernate le nom du répertoire Lucene (qui est normalement un répertoire sur le système de fichiers). Si vous souhaitez déterminer une base de réperoire pour tous les index Lucene, vous pourrez utiliser la propriété <literal>hibernate.search.default.indexBase</literal> de votre fichier de propriété. Chaque instance d'entité sera représentée par un <classname>Document</classname> Lucene dans l'index donné (appelé aussi Directory)."
 
 #. Tag: para
 #: Mapping.xml:34
@@ -88,6 +94,8 @@
 "literal> does declare a property as indexed. When indexing an element to a "
 "Lucene document you can specify how it is indexed:"
 msgstr ""
+"Pour chaque propriété (ou attribut) de votre entité, vous aurez la possibilité de décrire comment l'indexer. La valeur par défaut (no annotation) signifie que la propriété est complètement ignorée par le processus d'indexation. <literal>@Field</"
+"literal> ne déclare pas une propriété en tant qu'indexée. Quand on indexe un élément à un document Lucene, on peut spécifier comment l'indexer :"
 
 #. Tag: para
 #: Mapping.xml:43
@@ -96,7 +104,7 @@
 "<literal>name</literal> : describe under which name, the property should be "
 "stored in the Lucene Document. The default value is the property name "
 "(following the JavaBeans convention)"
-msgstr ""
+msgstr "<literal>name</literal> : décrit sous quel nom la propriété devra être stockée dans le document Lucene. La valeur par défaut est le nom de la propriété (suivant la covention JavaBeans)"
 
 #. Tag: para
 #: Mapping.xml:49
@@ -112,6 +120,8 @@
 "Lucene Document (note that this is not related to whether the element is "
 "indexed or not)."
 msgstr ""
+"<literal>store</literal> : décrit si la propriété est ou non stockée dans l'index Lucene. Vous pouvez stocker la valeur <literal>Store.YES</literal> (ce qui consomme plus d'espace dans l'index, mais qui permet la projection, voir <xref "
+"linkend=\"Hibernate_Search-Query-Projections\"/> pour davantage d'informations), la stocker dans un format compressé <literal>Store.COMPRESS</literal> (cela consomme davantage de mémoire), ou éviter tout stockage <literal>Store.NO</literal> (c'est la valeur par défaut). Quand une propriété est stockée, vous pourrez la retirer du document Lucene (notez que cela n'a rien à voir avec le fait que l'élément est indexé ou non)."
 
 #. Tag: para
 #: Mapping.xml:62
@@ -125,12 +135,14 @@
 "processing), <literal>Index.NO_NORM</literal> (do not store the "
 "normalization data). The default value is <literal>TOKENIZED</literal>."
 msgstr ""
+"index : décrit comment l'élément est indexé (c'est à dire le processus utilisé pour indexer l apropriété et le store type d'information xxx). Les différentes valeurs sont <literal>Index.NO</literal> (pas d'indexation, c'est à dire qu'il ne peut pas figurer dans une requête), "
+"<literal>Index.TOKENIZED</literal> (utilise un analyseur pour traiter la propriété), <literal>Index.UN_TOKENISED</literal> (pas de pré-traitement d'analyseur), <literal>Index.NO_NORM</literal> (ne stocke pas les données de normalisation). La valeur par défaut est <literal>TOKENIZED</literal>."
 
 #. Tag: para
 #: Mapping.xml:73
 #, no-c-format
 msgid "These attributes are part of the <literal>@Field</literal> annotation."
-msgstr ""
+msgstr "Ces attributs font partie de l'annotation <literal>@Field</literal>."
 
 #. Tag: para
 #: Mapping.xml:76
@@ -141,7 +153,7 @@
 "necessary. However you might want to store some fields to subsequently "
 "project them (see <xref linkend=\"Hibernate_Search-Query-Projections\"/> for "
 "more information)."
-msgstr ""
+msgstr "La question de savaoir si vous souhaiter stocker ou non les données dépend de la façon dont vous souhaitez utiliser l'index query result. Pour une utilisation normale Hibernate Search, il n'est pas utile de stocker, Cependant, vous souhaiterez peut-être stocker certains champs pour pouvoir les projeter par la suite (voir <xref linkend=\"Hibernate_Search-Query-Projections\"/> pour davantage d'informations)."
 
 #. Tag: para
 #: Mapping.xml:82
@@ -151,7 +163,7 @@
 "to search the element as is, or by the words it contains. It make sense to "
 "tokenize a text field, but it does not to do it for a date field (or an id "
 "field). Note that fields used for sorting must not be tokenized."
-msgstr ""
+msgstr "Que vous souhaitiez ou non tokeniser une propriété dépend si vous souhaitez chercher l'élément en tant que tel, ou bien si vous souhaitez le chercher par rapport aux mots qu'il contient. Il semble logique de tokeniser un champ de texte, mais pas pour un champ de date (ou un champ d'id). Notez que les champs qui sont utilisés pour l'ordonnancement ne doivent pas être tokenisés."
 
 #. Tag: para
 #: Mapping.xml:88
@@ -161,7 +173,7 @@
 "Hibernate Search to ensure index unicity of a given entity. By design, an id "
 "has to be stored and must not be tokenized. To mark a property as index id, "
 "use the <literal>@DocumentId</literal> annotation."
-msgstr ""
+msgstr "Enfin, une propriété id d'une entité est une entité spéciale utilisée par Hibernate Search pour garantir l'unicité de l'index d'une entité donnée. Par design, une id doit être stockée et ne doit pas être tokenisée. Pour marquer une propriété en tant qu'id d'index, utiliser l'annotation <literal>@Documentld</literal>."
 
 #. Tag: programlisting
 #: Mapping.xml:94
@@ -188,6 +200,26 @@
 "                                public String getText() { return text; }\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                <emphasis role=\"bold\">@DocumentId</"
+"emphasis>\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@Field(name="
+"\"Abstract\", index=Index.TOKENIZED, store=Store.YES)</emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                <emphasis role=\"bold\">@Field(index=Index."
+"TOKENIZED)</emphasis>\n"
+"                                public String getText() { return text; }\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:96
@@ -198,6 +230,8 @@
 "default the field name is decapitalized, following the JavaBean "
 "specification."
 msgstr ""
+"Ces annotations définissent un index de trois champs : <literal>id</literal> , "
+"<literal>Abstract</literal> et <literal>text</literal> . Notez que par défaut, le nom du champ est décapitalisé, suivi par la spécification JavaBean."
 
 #. Tag: para
 #: Mapping.xml:102
@@ -205,13 +239,13 @@
 msgid ""
 "You <emphasis>must</emphasis> specify <literal>@DocumentId</literal> on the "
 "identifier property of your entity class."
-msgstr ""
+msgstr "Vous <emphasis>devez</emphasis>spécifier<literal>@Documentld</literal> sur la propriété de l'identifieur de votre classe d'entité."
 
 #. Tag: title
 #: Mapping.xml:109
 #, no-c-format
 msgid "Mapping properties multiple times"
-msgstr ""
+msgstr "Mappage multiple de propriétés"
 
 #. Tag: para
 #: Mapping.xml:111
@@ -222,7 +256,7 @@
 "requires the field to be <literal>UN_TOKENIZED</literal>. If one want to "
 "search by words in this property and still sort it, one need to index it "
 "twice, once tokenized, once untokenized. @Fields allows to achieve this goal."
-msgstr ""
+msgstr "Il est parfois utile de mapper une propriété plusieurs fois par index, à l'aide de stratégies d'indexage légèrement différentes. Surtout, pour ordonnancer une requête par champ requiert que le champ soit <literal>UN_TOKENIZED</literal>. Si vous souhaitez chercher cette propriété par 'mot', vous aurez besoin de l'indexer à deux reprises, une fois tokenisée et une fois détokenisée. @Fields vous permettra de réaliser ce but."
 
 #. Tag: programlisting
 #: Mapping.xml:118
@@ -243,6 +277,20 @@
 "                                ...\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed(index = \"Book\" )\n"
+"                                public class Book {\n"
+"                                @Fields( {\n"
+"                                @Field(index = Index.TOKENIZED),\n"
+"                                @Field(name = \"summary_forSort\", index = "
+"Index.UN_TOKENIZED, store = Store.YES)\n"
+"                                } )\n"
+"                                public String getSummary() {\n"
+"                                return summary;\n"
+"                                }\n"
+"                                \n"
+"                                ...\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:120
@@ -251,31 +299,31 @@
 "The field summary is indexed twice, once as <literal>summary</literal> in a "
 "tokenized way, and once as <literal>summary_forSort</literal> in an "
 "untokenized way. @Field supports 2 attributes useful when @Fields is used:"
-msgstr ""
+msgstr "Ce résumé de champs est indexé deux fois, une fois en tant que <literal>summary</literal>(résumé) de façon tokenisée, et une fois en tant que <literal>summary_forSort</literal> de façon détokenisée. @Fields supporte 2 attributs qui s'avèrent utiles quand @Fields est utilisé :"
 
 #. Tag: para
 #: Mapping.xml:127
 #, no-c-format
 msgid "analyzer: defines a @Analyzer annotation per field rather than per property"
-msgstr ""
+msgstr "analyser : définit une annotation @Analyser par champ plutôt que par propriété"
 
 #. Tag: para
 #: Mapping.xml:132
 #, no-c-format
 msgid "bridge: defines a @FieldBridge annotation per field rather than per property"
-msgstr ""
+msgstr "bridge : définit une annotation @FieldBridge par champ plutôt que par propriété"
 
 #. Tag: para
 #: Mapping.xml:137
 #, no-c-format
 msgid "See below for more information about analyzers and field bridges."
-msgstr ""
+msgstr "Voir ci-dessous pour plus d'information sur les analyseurs et les pontages de champs."
 
 #. Tag: title
 #: Mapping.xml:142
 #, no-c-format
 msgid "Embedded and Associated Objects"
-msgstr ""
+msgstr "Objets intégrés et associés"
 
 #. Tag: para
 #: Mapping.xml:144
@@ -288,6 +336,8 @@
 "query parser language, it would translate into <code>address.city:Atlanta</"
 "code>)."
 msgstr ""
+"Les objets associés et les objets intégrés peuvent être indexés dans le cadre de l'index d'entité root. Cela est nécessaire si vous souhaitez rechercher une entité donnée sur la base de propriétés d'objet(s) associés. Dans l'exemple suivant, le use case est de retourner les lieux dont la ville est Atlanta (Dans le language de l'analyseur de requêtes, on traduirait <code>address.city:Atlanta</"
+"code>)."
 
 #. Tag: programlisting
 #: Mapping.xml:151
@@ -333,6 +383,45 @@
 "                                ...\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:153
@@ -344,6 +433,8 @@
 "literal>, and <literal>address.city</literal> which you will be able to "
 "query. This is enabled by the <literal>@IndexedEmbedded</literal> annotation."
 msgstr ""
+"Dans cet exemple, les champs de lieux seront indexés sur l'index <literal>Place</literal>. Les documents de l'index <literal>Place</literal> contiendront également les champs <literal>address.id</literal>, <literal>address.street</"
+"literal>, et <literal>address.city</literal> que vous serez en mesure d'interroger. Cela est rendu possible grâce à l'annotation <literal>@IndexedEmbedded</literal>"
 
 #. Tag: para
 #: Mapping.xml:162
@@ -357,6 +448,8 @@
 "side of the bidirectional relationship with <classname>@ContainedIn</"
 "classname>."
 msgstr ""
+"Faîtes attention. Comme les données sont dénormalisées dans l'index Lucene quand vous utilisez la technique <classname>@IndexedEmbedded</classname>, Hibernate Search doit être mis au courant de tout changement dans l'objet Place et de tout changement dans l'objet Address pour garder l'index à jour. Pour garantir la mise à jour du document Place Lucene quand son Adress change, vous devrez marquer l'autre côté de la relation bidirectionnelle par <classname>@ContainedIn</"
+"classname>."
 
 #. Tag: para
 #: Mapping.xml:172
@@ -365,12 +458,14 @@
 "<literal>@ContainedIn</literal> is only useful on associations pointing to "
 "entities as opposed to embedded (collection of) objects."
 msgstr ""
+"<classname>@ContainedIn</"
+"classname>. n'est utile que pour les associations qui pointent vers des entités à la différence des (ou d'une collection d') objets intégrés."
 
 #. Tag: para
 #: Mapping.xml:176
 #, no-c-format
 msgid "Let's make our example a bit more complex:"
-msgstr ""
+msgstr "Compliquons un peu notre exemple :"
 
 #. Tag: programlisting
 #: Mapping.xml:178
@@ -427,6 +522,56 @@
 "                                ...\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Place {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field( index = Index.TOKENIZED )\n"
+"                                private String name;\n"
+"                                \n"
+"                                @OneToOne( cascade = { CascadeType.PERSIST, "
+"CascadeType.REMOVE } )\n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded</"
+"emphasis>\n"
+"                                private Address address;\n"
+"                                ....\n"
+"                                }\n"
+"                                \n"
+"                                @Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                private String city;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@IndexedEmbedded"
+"(depth = 1, prefix = \"ownedBy_\")</emphasis>\n"
+"                                private Owner ownedBy;\n"
+"                                \n"
+"                                <emphasis role=\"bold\">@ContainedIn</"
+"emphasis>\n"
+"                                @OneToMany(mappedBy=\"address\")\n"
+"                                private Set&lt;Place&gt; places;\n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner {\n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                ...\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:180
@@ -436,37 +581,37 @@
 "can be annotated with <literal>@IndexedEmbedded</literal>. The attributes of "
 "the associated class will then be added to the main entity index. In the "
 "previous example, the index will contain the following fields"
-msgstr ""
+msgstr "Tout attribut <literal>@*ToOne</literal> ou <literal>@Embedded</literal> peut être annoté par <literal>@IndexedEmbedded</literal>. Les attributs de la classe associée seront alors ajoutés à l'index d'entités principal. Dans l'exemple précédent, l'index contiendra les champs suivants "
 
 #. Tag: para
 #: Mapping.xml:188
 #, no-c-format
 msgid "<para>id</para>"
-msgstr ""
+msgstr "<para>id</para>"
 
 #. Tag: para
 #: Mapping.xml:192
 #, no-c-format
 msgid "name"
-msgstr ""
+msgstr "nom"
 
 #. Tag: para
 #: Mapping.xml:196
 #, no-c-format
 msgid "address.street"
-msgstr ""
+msgstr "address.street"
 
 #. Tag: para
 #: Mapping.xml:200
 #, no-c-format
 msgid "address.city"
-msgstr ""
+msgstr "address.city"
 
 #. Tag: para
 #: Mapping.xml:204
 #, no-c-format
 msgid "addess.ownedBy_name"
-msgstr ""
+msgstr "addess.ownedBy_name"
 
 #. Tag: para
 #: Mapping.xml:208
@@ -476,7 +621,7 @@
 "traditional object navigation convention. You can override it using the "
 "<literal>prefix</literal> attribute as it is shown on the <literal>ownedBy</"
 "literal> property."
-msgstr ""
+msgstr "Le préfixe par défaut est <literal>propertyName.</literal>, suivant la convention de navigation d'objets traditionnelle. Vous pouvez surcharger l'attribut <literal>prefix</literal> comme c'est montré sur la propriété <literal>ownedBy</literal>."
 
 #. Tag: para
 #: Mapping.xml:213
@@ -491,7 +636,7 @@
 "example, because <literal>depth</literal> is set to 1, any "
 "<literal>@IndexedEmbedded</literal> attribute in Owner (if any) will be "
 "ignored."
-msgstr ""
+msgstr "<literal>depth</literal> est utile quand le graphe de l'objet contient une dépendance cyclique de classes (et non pas d'instances). Ainsi, si <classname>Owner</classname> pointe vers <classname>Place</classname>, Hibernate Search cessera d'inclure les attributs intégrés indexés après avoir atteint la profondeur désirée (ou les limites du graphe de l'objet). Une classe qui comporte sur référence personnelle est un exemple de dépendance cyclique. Dans notre exemple, comme <literal>depth</literal> est fixé à 1, tout attribut <literal>@IndexedEmbedded</literal> d'Owner (s'il en existe un) sera ignoré."
 
 #. Tag: para
 #: Mapping.xml:223
@@ -499,7 +644,7 @@
 msgid ""
 "Such a feature (<literal>@IndexedEmbedded</literal>) is very useful to "
 "express queries referring to associated objects, such as:"
-msgstr ""
+msgstr "Une telle fonctionnalité (<literal>@IndexedEmbedded</literal>) est très utile pour les requêtes express faisant référence à des objetsw associés, comme :"
 
 #. Tag: para
 #: Mapping.xml:229
@@ -507,13 +652,13 @@
 msgid ""
 "Return places where name contains JBoss and where address city is Atlanta. "
 "In Lucene query this would be"
-msgstr ""
+msgstr "Des lieux de retour pour lesquels le nom lui-même contient JBoss et pour lesquels la ville de l'adresse est Atlanta. Pour les requêtes Lucene, on aurait ainsi :"
 
 #. Tag: programlisting
 #: Mapping.xml:232
 #, no-c-format
 msgid "+name:jboss +address.city:atlanta"
-msgstr ""
+msgstr "+name:jboss +address.city:atlanta"
 
 #. Tag: para
 #: Mapping.xml:236
@@ -521,13 +666,13 @@
 msgid ""
 "Return places where name contains JBoss and where owner's name contain Joe. "
 "In Lucene query this would be"
-msgstr ""
+msgstr "Retourne des lieux pour lesquels le nom lui-même contient JBoss et pour lesquels le nom du ropriétaire est Joe. Pour une requête Lucene, on aurait :"
 
 #. Tag: programlisting
 #: Mapping.xml:239
 #, no-c-format
 msgid "+name:jboss +address.orderBy_name:joe"
-msgstr ""
+msgstr "+name:jboss +address.orderBy_name:joe"
 
 #. Tag: para
 #: Mapping.xml:243
@@ -538,7 +683,7 @@
 "have no notion of association, the join operation is simply non-existent. It "
 "might help to keep the relational model normalized while benefiting from the "
 "full text index speed and feature richness."
-msgstr ""
+msgstr "D'une certaine façon, cela mimique l'opération de jointure realtionnelle d'une manière plus efficace (au détriment de la duplication des données). Souvenez-vous qu'au départ, les index Lucene ne possèdent pas la notion d'association, l'opération de jointure est tout simplement inexistante. Cela pourrait vous aider à conserver le modèle relationnel normalisé, tout en bénéficiant de la vitesse d'indexage de texte intégral et la richesse fonctionnelle."
 
 #. Tag: para
 #: Mapping.xml:251
@@ -546,7 +691,7 @@
 msgid ""
 "An associated object can itself be (but don't have to) <literal>@Indexed</"
 "literal>"
-msgstr ""
+msgstr "Un objet associé peut lui-même être <literal>@Indexed/</literal> (mais pas forcément)"
 
 #. Tag: para
 #: Mapping.xml:255
@@ -559,6 +704,8 @@
 "example, a <literal>Place</literal> index document has to be updated when "
 "the associated <classname>Address</classname> instance is updated."
 msgstr ""
+"Quand @IndexedEmbedded pointe vers une entité, l'association doit être directionnnelle et l'autre côté devra être annoté <literal>@ContainedIn</"
+"literal> (comme dans l'exemple précédent). Sinon, Hibernate Search ne possède aucun moyen de mettre à jour l'index root quand l'entité associée est mise à jour (dans notre exemple, un document d'index <literal>Place</literal> devra être mis à jour quand l'instance associée <classname>Address</classname> est mise à jour."
 
 #. Tag: para
 #: Mapping.xml:263
@@ -570,6 +717,8 @@
 "override the object type targeted by Hibernate Search using the "
 "<command>targetElement</command> parameter."
 msgstr ""
+"Parfois, le type d'objet annoté par <classname>@IndexedEmbedded</"
+"classname> n'est pas le type d'objet qui est ciblé par Hibernate et Hibernate Search, surtout quand l'interface est utilisée à la place de l'implémentation. Vous pouvez surcharger le type d'objet ciblé avec Hibernate Search en utilisant le paramètre <command>targetElement</command>."
 
 #. Tag: programlisting
 #: Mapping.xml:270
@@ -599,12 +748,35 @@
 "                                @Embeddable\n"
 "                                public class Owner implements Person { ... }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                public class Address {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Long id;\n"
+"                                \n"
+"                                @Field(index= Index.TOKENIZED)\n"
+"                                private String street;\n"
+"                                \n"
+"                                @IndexedEmbedded(depth = 1, prefix = "
+"\"ownedBy_\", <emphasis role=\"bold\">targetElement = Owner.class</"
+"emphasis>)\n"
+"                                @Target(Owner.class)\n"
+"                                private Person ownedBy;\n"
+"                                \n"
+"                                \n"
+"                                ...\n"
+"                                }\n"
+"                                \n"
+"                                @Embeddable\n"
+"                                public class Owner implements Person { ... }"
 
 #. Tag: title
 #: Mapping.xml:274
 #, no-c-format
 msgid "Boost factor"
-msgstr ""
+msgstr "Boost factor"
 
 #. Tag: para
 #: Mapping.xml:276
@@ -614,7 +786,7 @@
 "give more weight to a field or to an indexed element over an other during "
 "the indexation process. You can use <literal>@Boost</literal> at the field "
 "or the class level."
-msgstr ""
+msgstr "Lucene contient la notion de <emphasis>boost factor</emphasis>. Il s'agit d'une façon de donner davantage de poids à un champ ou à un élément indexé par rapport à un autre au cours du processus d'indexation. Vous pouvez utiliser <literal>@Boost</literal> au niveau du champ ou bien de la classe."
 
 #. Tag: programlisting
 #: Mapping.xml:281
@@ -643,6 +815,28 @@
 "                                public String getText() { return text; }\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed(index=\"indexes/essays\")\n"
+"                                <emphasis role=\"bold\">@Boost(2)</"
+"emphasis>\n"
+"                                public class Essay {\n"
+"                                ...\n"
+"                                \n"
+"                                @Id\n"
+"                                @DocumentId\n"
+"                                public Long getId() { return id; }\n"
+"                                \n"
+"                                @Field(name=\"Abstract\", index=Index."
+"TOKENIZED, store=Store.YES)\n"
+"                                <emphasis role=\"bold\">@Boost(2.5f)</"
+"emphasis>\n"
+"                                public String getSummary() { return "
+"summary; }\n"
+"                                \n"
+"                                @Lob\n"
+"                                @Field(index=Index.TOKENIZED)\n"
+"                                public String getText() { return text; }\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:283
@@ -660,7 +854,7 @@
 #: Mapping.xml:292
 #, no-c-format
 msgid "Analyzer"
-msgstr ""
+msgstr "Analisateur"
 
 #. Tag: para
 #: Mapping.xml:294
@@ -707,6 +901,28 @@
 "                                ...\n"
 "                                }"
 msgstr ""
+"@Entity\n"
+"                                @Indexed\n"
+"                                @Analyzer(impl = EntityAnalyzer.class)\n"
+"                                public class MyEntity {\n"
+"                                @Id\n"
+"                                @GeneratedValue\n"
+"                                @DocumentId\n"
+"                                private Integer id;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                private String name;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED)\n"
+"                                @Analyzer(impl = PropertyAnalyzer.class)\n"
+"                                private String summary;\n"
+"                                \n"
+"                                @Field(index = Index.TOKENIZED, analyzer = "
+"@Analyzer(impl = FieldAnalyzer.class)\n"
+"                                private String body;\n"
+"                                \n"
+"                                ...\n"
+"                                }"
 
 #. Tag: para
 #: Mapping.xml:306
@@ -766,7 +982,7 @@
 #: Mapping.xml:344
 #, no-c-format
 msgid "null"
-msgstr ""
+msgstr "null"
 
 #. Tag: para
 #: Mapping.xml:347
@@ -780,7 +996,7 @@
 #: Mapping.xml:353
 #, no-c-format
 msgid "java.lang.String"
-msgstr ""
+msgstr "java.lang.String"
 
 #. Tag: para
 #: Mapping.xml:356
@@ -795,6 +1011,8 @@
 "short, Short, integer, Integer, long, Long, float, Float, double, Double, "
 "BigInteger, BigDecimal"
 msgstr ""
+"short, Short, integer, Integer, long, Long, float, Float, double, Double, "
+"BigInteger, BigDecimal"
 
 #. Tag: para
 #: Mapping.xml:365
@@ -824,7 +1042,7 @@
 #: Mapping.xml:378
 #, no-c-format
 msgid "java.util.Date"
-msgstr ""
+msgstr "java.util.Date"
 
 #. Tag: para
 #: Mapping.xml:381
@@ -862,6 +1080,16 @@
 "                                                        private Date date;\n"
 "                                                        ..."
 msgstr ""
+"@Entity \n"
+"                                                        @Indexed\n"
+"                                                        public class Meeting "
+"{\n"
+"                                                        @Field(index=Index."
+"UN_TOKENIZED)\n"
+"                                                        <emphasis role=\"bold"
+"\">@DateBridge(resolution=Resolution.MINUTE)</emphasis>\n"
+"                                                        private Date date;\n"
+"                                                        ..."
 
 #. Tag: para
 #: Mapping.xml:397
@@ -890,7 +1118,7 @@
 #: Mapping.xml:416
 #, no-c-format
 msgid "StringBridge"
-msgstr ""
+msgstr "StringBridge"
 
 #. Tag: para
 #: Mapping.xml:418
@@ -937,6 +1165,36 @@
 "                                        }\n"
 "                                        }"
 msgstr ""
+"/**\n"
+"                                        * Padding Integer bridge.\n"
+"                                        * All numbers will be padded with 0 "
+"to match 5 digits\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class PaddedIntegerBridge "
+"implements <emphasis role=\"bold\">StringBridge</emphasis> {\n"
+"                                        \n"
+"                                        private int PADDING = 5;\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"String objectToString(Object object)</emphasis> {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"PADDING) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; PADDING ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }"
 
 #. Tag: para
 #: Mapping.xml:427
@@ -954,6 +1212,9 @@
 "emphasis>\n"
 "                                        private Integer length;"
 msgstr ""
+"<emphasis role=\"bold\">@FieldBridge(impl = PaddedIntegerBridge.class)</"
+"emphasis>\n"
+"                                        private Integer length;"
 
 #. Tag: para
 #: Mapping.xml:432
@@ -1013,6 +1274,49 @@
 "                                        )\n"
 "                                        private Integer length;"
 msgstr ""
+"public class PaddedIntegerBridge implements StringBridge, <emphasis\n"
+"                                                                                role="
+"\"bold\">ParameterizedBridge</emphasis> {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"setParameterValues(Map parameters)</emphasis> {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        <emphasis role=\"bold\">params = "
+"@Parameter(name=\"padding\", value=\"10\")</emphasis>\n"
+"                                        )\n"
+"                                        private Integer length;"
 
 #. Tag: para
 #: Mapping.xml:440
@@ -1088,6 +1392,53 @@
 "\", value=\"10\") \n"
 "                                        private Integer id;"
 msgstr ""
+"public class PaddedIntegerBridge implements TwoWayStringBridge, "
+"ParameterizedBridge {\n"
+"                                        \n"
+"                                        public static String "
+"PADDING_PROPERTY = \"padding\";\n"
+"                                        private int padding = 5; //default\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        Object padding = parameters.get"
+"( PADDING_PROPERTY );\n"
+"                                        if (padding != null) this.padding = "
+"(Integer) padding;\n"
+"                                        }\n"
+"                                        \n"
+"                                        public String objectToString(Object "
+"object) {\n"
+"                                        String rawInteger = ( (Integer) "
+"object ).toString();\n"
+"                                        if (rawInteger.length() &gt; "
+"padding) \n"
+"                                        throw new IllegalArgumentException"
+"( \"Try to pad on a number too big\" );\n"
+"                                        StringBuilder paddedInteger = new "
+"StringBuilder( );\n"
+"                                        for ( int padIndex = rawInteger."
+"length() ; padIndex &lt; padding ; padIndex++ ) {\n"
+"                                        paddedInteger.append('0');\n"
+"                                        }\n"
+"                                        return paddedInteger.append"
+"( rawInteger ).toString();\n"
+"                                        }\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public "
+"Object stringToObject(String stringValue)</emphasis> {\n"
+"                                        return new Integer(stringValue);\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //id property\n"
+"                                        @DocumentId\n"
+"                                        @FieldBridge(impl = "
+"PaddedIntegerBridge.class,\n"
+"                                        params = @Parameter(name=\"padding"
+"\", value=\"10\") \n"
+"                                        private Integer id;"
 
 #. Tag: para
 #: Mapping.xml:457
@@ -1101,7 +1452,7 @@
 #: Mapping.xml:465
 #, no-c-format
 msgid "FieldBridge"
-msgstr ""
+msgstr "FieldBridge"
 
 #. Tag: para
 #: Mapping.xml:467
@@ -1183,12 +1534,68 @@
 "(impl = DateSplitBridge.class)</emphasis>\n"
 "                                        private Integer length;"
 msgstr ""
+"/**\n"
+"                                        * Store the date in 3 different "
+"field year, month, day\n"
+"                                        * to ease Range Query per year, "
+"month or day\n"
+"                                        * (e.g. get all the elements of "
+"December for the last 5 years)\n"
+"                                        *\n"
+"                                        * @author Emmanuel Bernard\n"
+"                                        */\n"
+"                                        public class DateSplitBridge "
+"implements FieldBridge {\n"
+"                                        private final static TimeZone GMT = "
+"TimeZone.getTimeZone(\"GMT\");\n"
+"                                        \n"
+"                                        <emphasis role=\"bold\">public void "
+"set(String name, Object value, Document document, Field.Store\n"
+"                                                store, Field.Index index, "
+"Float boost) {\n"
+"                                        </emphasis>\n"
+"                                        Date date = (Date) value;\n"
+"                                        Calendar cal = GregorianCalendar."
+"getInstance( GMT );\n"
+"                                        cal.setTime( date );\n"
+"                                        int year = cal.get( Calendar."
+"YEAR );\n"
+"                                        int month = cal.get( Calendar."
+"MONTH ) + 1;\n"
+"                                        int day = cal.get( Calendar."
+"DAY_OF_MONTH );\n"
+"                                        //set year\n"
+"                                        Field field = new Field( name + \"."
+"year\", String.valueOf(year), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set month and pad it if needed\n"
+"                                        field = new Field( name + \".month"
+"\", month &lt; 10 ? \"0\" : \"\" + String.valueOf(month), store, index);\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        //set day and pad it if needed\n"
+"                                        field = new Field( name + \".day\", "
+"day &lt; 10 ? \"0\" : \"\" + String.valueOf(day), store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }\n"
+"                                        \n"
+"                                        \n"
+"                                        //property\n"
+"                                        <emphasis role=\"bold\">@FieldBridge"
+"(impl = DateSplitBridge.class)</emphasis>\n"
+"                                        private Integer length;"
 
 #. Tag: title
 #: Mapping.xml:484
 #, no-c-format
 msgid "@ClassBridge"
-msgstr ""
+msgstr "@ClassBridge"
 
 #. Tag: para
 #: Mapping.xml:486
@@ -1273,6 +1680,72 @@
 "                                        }\n"
 "                                        }"
 msgstr ""
+"@Entity\n"
+"                                        @Indexed\n"
+"                                        <emphasis role=\"bold"
+"\">@ClassBridge</emphasis>(name=\"branchnetwork\",\n"
+"                                        index=Index.TOKENIZED,\n"
+"                                        store=Store.YES,\n"
+"                                        impl = <emphasis role=\"bold"
+"\">CatFieldsClassBridge.class</emphasis>,\n"
+"                                        params = @Parameter( name=\"sepChar"
+"\", value=\" \" ) )\n"
+"                                        public class Department {\n"
+"                                        private int id;\n"
+"                                        private String network;\n"
+"                                        private String branchHead;\n"
+"                                        private String branch;\n"
+"                                        private Integer maxEmployees;\n"
+"                                        ...\n"
+"                                        }\n"
+"                                        \n"
+"                                        public class CatFieldsClassBridge "
+"implements FieldBridge, ParameterizedBridge {\n"
+"                                        \n"
+"                                        private String sepChar;\n"
+"                                        \n"
+"                                        public void setParameterValues(Map "
+"parameters) {\n"
+"                                        this.sepChar = (String) parameters."
+"get( \"sepChar\" );\n"
+"                                        }\n"
+"                                        \n"
+"                                        public void set(String name, \n"
+"                                        Object value, //the department "
+"instance (entity) in this case\n"
+"                                        Document document, //the Lucene "
+"document \n"
+"                                        Field.Store store, Field.Index "
+"index, Float boost) {\n"
+"                                        // In this particular class the name "
+"of the new field was passed\n"
+"                                        // from the name field of the "
+"ClassBridge Annotation. This is not\n"
+"                                        // a requirement. It just works that "
+"way in this instance. The\n"
+"                                        // actual name could be supplied by "
+"hard coding it below.\n"
+"                                        Department dep = (Department) "
+"value;\n"
+"                                        String fieldValue1 = dep.getBranch"
+"();\n"
+"                                        if ( fieldValue1 == null ) {\n"
+"                                        fieldValue1 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue2 = dep.getNetwork"
+"();\n"
+"                                        if ( fieldValue2 == null ) {\n"
+"                                        fieldValue2 = \"\";\n"
+"                                        }\n"
+"                                        String fieldValue = fieldValue1 + "
+"sepChar + fieldValue2;\n"
+"                                        Field field = new Field( name, "
+"fieldValue, store, index );\n"
+"                                        if ( boost != null ) field.setBoost"
+"( boost );\n"
+"                                        document.add( field );\n"
+"                                        }\n"
+"                                        }"
 
 #. Tag: para
 #: Mapping.xml:496




More information about the jboss-cvs-commits mailing list