~raginggoblin/infolog/infolog

« back to all changes in this revision

Viewing changes to InfologServer/lib/hibernate-distribution-3.3.2.GA/project/documentation/manual/src/main/docbook/es-ES/content/events.po

  • Committer: Raging Goblin
  • Date: 2013-11-16 16:51:32 UTC
  • Revision ID: raging_goblin-20131116165132-weujnptzc88uy4ah
Mavenized the project, now using shared project InfologSync

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#, fuzzy
2
 
msgid ""
3
 
msgstr ""
4
 
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
5
 
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
6
 
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
7
 
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
 
"Content-Type: text/plain; charset=UTF-8\n"
9
 
 
10
 
#. Tag: title
11
 
#: events.xml:29
12
 
#, no-c-format
13
 
msgid "Interceptors and events"
14
 
msgstr "Interceptores y eventos"
15
 
 
16
 
#. Tag: para
17
 
#: events.xml:31
18
 
#, fuzzy, no-c-format
19
 
msgid ""
20
 
"It is useful for the application to react to certain events that occur "
21
 
"inside Hibernate. This allows for the implementation of generic "
22
 
"functionality and the extension of Hibernate functionality."
23
 
msgstr ""
24
 
"Frecuentemente es &#x00fa;til para la aplicaci&#x00f3;n reaccionar a ciertos "
25
 
"eventos que ocurran dentro de Hibernate. Esto permite la implementaci&#x00f3;"
26
 
"n de ciertos tipos de funcionalidade gen&#x00e9;rica, y extensi&#x00f3;n de "
27
 
"la funcionalidad de Hibernate."
28
 
 
29
 
#. Tag: title
30
 
#: events.xml:38
31
 
#, no-c-format
32
 
msgid "Interceptors"
33
 
msgstr "Interceptores"
34
 
 
35
 
#. Tag: para
36
 
#: events.xml:40
37
 
#, fuzzy, no-c-format
38
 
msgid ""
39
 
"The <literal>Interceptor</literal> interface provides callbacks from the "
40
 
"session to the application, allowing the application to inspect and/or "
41
 
"manipulate properties of a persistent object before it is saved, updated, "
42
 
"deleted or loaded. One possible use for this is to track auditing "
43
 
"information. For example, the following <literal>Interceptor</literal> "
44
 
"automatically sets the <literal>createTimestamp</literal> when an "
45
 
"<literal>Auditable</literal> is created and updates the "
46
 
"<literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</"
47
 
"literal> is updated."
48
 
msgstr ""
49
 
"La interface <literal>Interceptor</literal> provee callbacks desde la "
50
 
"sesi&#x00f3;n a la aplicaci&#x00f3;n permitiendo a &#x00e9;sta &#x00fa;ltima "
51
 
"inspeccionar y/o manipular las propiedades de un objeto persistente antes "
52
 
"que sea salvado, actualizado, borrado o cargado. Un uso posible de esto es "
53
 
"seguir la pista de informaci&#x00f3;n de auditor&#x00ed;a. Por ejemplo, el "
54
 
"siguiente <literal>Interceptor</literal> establece autom&#x00e1;ticamente el "
55
 
"<literal>createTimestamp</literal> cuando un <literal>Auditable</literal> es "
56
 
"creado y actualiza la propiedad <literal>lastUpdateTimestamp</literal> "
57
 
"cuando un <literal>Auditable</literal> es acutalizado."
58
 
 
59
 
#. Tag: para
60
 
#: events.xml:51
61
 
#, fuzzy, no-c-format
62
 
msgid ""
63
 
"You can either implement <literal>Interceptor</literal> directly or extend "
64
 
"<literal>EmptyInterceptor</literal>."
65
 
msgstr ""
66
 
"UNTRANSLATED! You may either implement <literal>Interceptor</literal> "
67
 
"directly or (better) extend <literal>EmptyInterceptor</literal>."
68
 
 
69
 
#. Tag: programlisting
70
 
#: events.xml:56
71
 
#, no-c-format
72
 
msgid ""
73
 
"<![CDATA[package org.hibernate.test;\n"
74
 
"\n"
75
 
"import java.io.Serializable;\n"
76
 
"import java.util.Date;\n"
77
 
"import java.util.Iterator;\n"
78
 
"\n"
79
 
"import org.hibernate.EmptyInterceptor;\n"
80
 
"import org.hibernate.Transaction;\n"
81
 
"import org.hibernate.type.Type;\n"
82
 
"\n"
83
 
"public class AuditInterceptor extends EmptyInterceptor {\n"
84
 
"\n"
85
 
"    private int updates;\n"
86
 
"    private int creates;\n"
87
 
"    private int loads;\n"
88
 
"\n"
89
 
"    public void onDelete(Object entity,\n"
90
 
"                         Serializable id,\n"
91
 
"                         Object[] state,\n"
92
 
"                         String[] propertyNames,\n"
93
 
"                         Type[] types) {\n"
94
 
"        // do nothing\n"
95
 
"    }\n"
96
 
"\n"
97
 
"    public boolean onFlushDirty(Object entity,\n"
98
 
"                                Serializable id,\n"
99
 
"                                Object[] currentState,\n"
100
 
"                                Object[] previousState,\n"
101
 
"                                String[] propertyNames,\n"
102
 
"                                Type[] types) {\n"
103
 
"\n"
104
 
"        if ( entity instanceof Auditable ) {\n"
105
 
"            updates++;\n"
106
 
"            for ( int i=0; i < propertyNames.length; i++ ) {\n"
107
 
"                if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
108
 
"                    currentState[i] = new Date();\n"
109
 
"                    return true;\n"
110
 
"                }\n"
111
 
"            }\n"
112
 
"        }\n"
113
 
"        return false;\n"
114
 
"    }\n"
115
 
"\n"
116
 
"    public boolean onLoad(Object entity,\n"
117
 
"                          Serializable id,\n"
118
 
"                          Object[] state,\n"
119
 
"                          String[] propertyNames,\n"
120
 
"                          Type[] types) {\n"
121
 
"        if ( entity instanceof Auditable ) {\n"
122
 
"            loads++;\n"
123
 
"        }\n"
124
 
"        return false;\n"
125
 
"    }\n"
126
 
"\n"
127
 
"    public boolean onSave(Object entity,\n"
128
 
"                          Serializable id,\n"
129
 
"                          Object[] state,\n"
130
 
"                          String[] propertyNames,\n"
131
 
"                          Type[] types) {\n"
132
 
"\n"
133
 
"        if ( entity instanceof Auditable ) {\n"
134
 
"            creates++;\n"
135
 
"            for ( int i=0; i<propertyNames.length; i++ ) {\n"
136
 
"                if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
137
 
"                    state[i] = new Date();\n"
138
 
"                    return true;\n"
139
 
"                }\n"
140
 
"            }\n"
141
 
"        }\n"
142
 
"        return false;\n"
143
 
"    }\n"
144
 
"\n"
145
 
"    public void afterTransactionCompletion(Transaction tx) {\n"
146
 
"        if ( tx.wasCommitted() ) {\n"
147
 
"            System.out.println(\"Creations: \" + creates + \", Updates: \" + "
148
 
"updates, \"Loads: \" + loads);\n"
149
 
"        }\n"
150
 
"        updates=0;\n"
151
 
"        creates=0;\n"
152
 
"        loads=0;\n"
153
 
"    }\n"
154
 
"\n"
155
 
"}]]>"
156
 
msgstr ""
157
 
"<![CDATA[package org.hibernate.test;\n"
158
 
"\n"
159
 
"import java.io.Serializable;\n"
160
 
"import java.util.Date;\n"
161
 
"import java.util.Iterator;\n"
162
 
"\n"
163
 
"import org.hibernate.Interceptor;\n"
164
 
"import org.hibernate.type.Type;\n"
165
 
"\n"
166
 
"public class AuditInterceptor implements Interceptor, Serializable {\n"
167
 
"\n"
168
 
"    private int updates;\n"
169
 
"    private int creates;\n"
170
 
"\n"
171
 
"    public void onDelete(Object entity,\n"
172
 
"                         Serializable id,\n"
173
 
"                         Object[] state,\n"
174
 
"                         String[] propertyNames,\n"
175
 
"                         Type[] types) {\n"
176
 
"        // do nothing\n"
177
 
"    }\n"
178
 
"\n"
179
 
"    public boolean onFlushDirty(Object entity,\n"
180
 
"                                Serializable id,\n"
181
 
"                                Object[] currentState,\n"
182
 
"                                Object[] previousState,\n"
183
 
"                                String[] propertyNames,\n"
184
 
"                                Type[] types) {\n"
185
 
"\n"
186
 
"        if ( entity instanceof Auditable ) {\n"
187
 
"            updates++;\n"
188
 
"            for ( int i=0; i < propertyNames.length; i++ ) {\n"
189
 
"                if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
190
 
"                    currentState[i] = new Date();\n"
191
 
"                    return true;\n"
192
 
"                }\n"
193
 
"            }\n"
194
 
"        }\n"
195
 
"        return false;\n"
196
 
"    }\n"
197
 
"\n"
198
 
"    public boolean onLoad(Object entity,\n"
199
 
"                          Serializable id,\n"
200
 
"                          Object[] state,\n"
201
 
"                          String[] propertyNames,\n"
202
 
"                          Type[] types) {\n"
203
 
"        return false;\n"
204
 
"    }\n"
205
 
"\n"
206
 
"    public boolean onSave(Object entity,\n"
207
 
"                          Serializable id,\n"
208
 
"                          Object[] state,\n"
209
 
"                          String[] propertyNames,\n"
210
 
"                          Type[] types) {\n"
211
 
"\n"
212
 
"        if ( entity instanceof Auditable ) {\n"
213
 
"            creates++;\n"
214
 
"            for ( int i=0; i<propertyNames.length; i++ ) {\n"
215
 
"                if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
216
 
"                    state[i] = new Date();\n"
217
 
"                    return true;\n"
218
 
"                }\n"
219
 
"            }\n"
220
 
"        }\n"
221
 
"        return false;\n"
222
 
"    }\n"
223
 
"\n"
224
 
"    public void postFlush(Iterator entities) {\n"
225
 
"        System.out.println(\"Creations: \" + creates + \", Updates: \" + "
226
 
"updates);\n"
227
 
"    }\n"
228
 
"\n"
229
 
"    public void preFlush(Iterator entities) {\n"
230
 
"        updates=0;\n"
231
 
"        creates=0;\n"
232
 
"    }\n"
233
 
"\n"
234
 
"    ...\n"
235
 
"\n"
236
 
"}]]>"
237
 
 
238
 
#. Tag: para
239
 
#: events.xml:58
240
 
#, fuzzy, no-c-format
241
 
msgid ""
242
 
"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
243
 
"<literal>SessionFactory</literal>-scoped."
244
 
msgstr ""
245
 
"UNTRANSLATED! Interceptors come in two flavors: <literal>Session</literal>-"
246
 
"scoped and <literal>SessionFactory</literal>-scoped."
247
 
 
248
 
#. Tag: para
249
 
#: events.xml:63
250
 
#, no-c-format
251
 
msgid ""
252
 
"A <literal>Session</literal>-scoped interceptor is specified when a session "
253
 
"is opened using one of the overloaded SessionFactory.openSession() methods "
254
 
"accepting an <literal>Interceptor</literal>."
255
 
msgstr ""
256
 
"UNTRANSLATED! A <literal>Session</literal>-scoped interceptor is specified "
257
 
"when a session is opened using one of the overloaded SessionFactory."
258
 
"openSession() methods accepting an <literal>Interceptor</literal>."
259
 
 
260
 
#. Tag: programlisting
261
 
#: events.xml:69
262
 
#, no-c-format
263
 
msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
264
 
msgstr ""
265
 
"<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
266
 
 
267
 
#. Tag: para
268
 
#: events.xml:71
269
 
#, fuzzy, no-c-format
270
 
msgid ""
271
 
"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
272
 
"the <literal>Configuration</literal> object prior to building the "
273
 
"<literal>SessionFactory</literal>. Unless a session is opened explicitly "
274
 
"specifying the interceptor to use, the supplied interceptor will be applied "
275
 
"to all sessions opened from that <literal>SessionFactory</literal>. "
276
 
"<literal>SessionFactory</literal>-scoped interceptors must be thread safe. "
277
 
"Ensure that you do not store session-specific states, since multiple "
278
 
"sessions will use this interceptor potentially concurrently."
279
 
msgstr ""
280
 
"UNTRANSLATED! A <literal>SessionFactory</literal>-scoped interceptor is "
281
 
"registered with the <literal>Configuration</literal> object prior to "
282
 
"building the <literal>SessionFactory</literal>. In this case, the supplied "
283
 
"interceptor will be applied to all sessions opened from that "
284
 
"<literal>SessionFactory</literal>; this is true unless a session is opened "
285
 
"explicitly specifying the interceptor to use. <literal>SessionFactory</"
286
 
"literal>-scoped interceptors must be thread safe, taking care to not store "
287
 
"session-specific state since multiple sessions will use this interceptor "
288
 
"(potentially) concurrently."
289
 
 
290
 
#. Tag: programlisting
291
 
#: events.xml:80
292
 
#, no-c-format
293
 
msgid ""
294
 
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
295
 
msgstr ""
296
 
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
297
 
 
298
 
#. Tag: title
299
 
#: events.xml:85
300
 
#, no-c-format
301
 
msgid "Event system"
302
 
msgstr "Sistema de eventos"
303
 
 
304
 
#. Tag: para
305
 
#: events.xml:87
306
 
#, fuzzy, no-c-format
307
 
msgid ""
308
 
"If you have to react to particular events in your persistence layer, you can "
309
 
"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
310
 
"system can be used in addition, or as a replacement, for interceptors."
311
 
msgstr ""
312
 
"Si tienes que reaccionar a eventos particulares en tu capa de persistencia, "
313
 
"puedes tambi&#x00e9;n la arquitectura de <emphasis>eventos</emphasis> de "
314
 
"Hibernate3. El sistema de eventos puede ser usado en adici&#x00f3;n o como "
315
 
"un remplazo a los interceptores."
316
 
 
317
 
#. Tag: para
318
 
#: events.xml:93
319
 
#, fuzzy, no-c-format
320
 
msgid ""
321
 
"All the methods of the <literal>Session</literal> interface correlate to an "
322
 
"event. You have a <literal>LoadEvent</literal>, a <literal>FlushEvent</"
323
 
"literal>, etc. Consult the XML configuration-file DTD or the <literal>org."
324
 
"hibernate.event</literal> package for the full list of defined event types. "
325
 
"When a request is made of one of these methods, the Hibernate "
326
 
"<literal>Session</literal> generates an appropriate event and passes it to "
327
 
"the configured event listeners for that type. Out-of-the-box, these "
328
 
"listeners implement the same processing in which those methods always "
329
 
"resulted. However, you are free to implement a customization of one of the "
330
 
"listener interfaces (i.e., the <literal>LoadEvent</literal> is processed by "
331
 
"the registered implementation of the <literal>LoadEventListener</literal> "
332
 
"interface), in which case their implementation would be responsible for "
333
 
"processing any <literal>load()</literal> requests made of the "
334
 
"<literal>Session</literal>."
335
 
msgstr ""
336
 
"Esencialmente todos los m&#x00e9;todos de la interface <literal>Session</"
337
 
"literal> se correlacionan con un evento. Tienes un <literal>LoadEvent</"
338
 
"literal>, un <literal>FlushEvent</literal>, etc (consulta el DTD del fichero "
339
 
"de configuraci&#x00f3;n XML o el paquete <literal>org.hibernate.event</"
340
 
"literal> para la lista completa de tipos de evento definidos). Cuando se "
341
 
"hace una petici&#x00f3;n de uno de estos m&#x00e9;todos, la "
342
 
"<literal>Session</literal> de Hibernate genera un evento apropiado y se lo "
343
 
"pasa al oyente (listener) de eventos configurado para ese tipo. De f&#x00e1;"
344
 
"brica, estos oyentes implementan el mismo procesamiento en los que siempre "
345
 
"resultan aquellos m&#x00e9;todos. Sin embargo, eres libre de implementar una "
346
 
"personalizaci&#x00f3;n de una de las interfaces oyentes (es decir, el "
347
 
"<literal>LoadEvent</literal> es procesado por la implementaci&#x00f3;n "
348
 
"registrada de la interface <literal>LoadEventListener</literal>), en cuyo "
349
 
"caso su implementaci&#x00f3;n ser&#x00ed;a responsable de procesar cualquier "
350
 
"petici&#x00f3;n <literal>load()</literal> hecha a la <literal>Session</"
351
 
"literal>."
352
 
 
353
 
#. Tag: para
354
 
#: events.xml:108
355
 
#, fuzzy, no-c-format
356
 
msgid ""
357
 
"The listeners should be considered singletons. This means they are shared "
358
 
"between requests, and should not save any state as instance variables."
359
 
msgstr ""
360
 
"Los oyentes deben ser considerados efectivamente singletons; quiere decir, "
361
 
"que son compartidos entre las peticiones, y por lo tanto no guardan "
362
 
"ning&#x00fa;n estado en variables de instancia."
363
 
 
364
 
#. Tag: para
365
 
#: events.xml:113
366
 
#, fuzzy, no-c-format
367
 
msgid ""
368
 
"A custom listener implements the appropriate interface for the event it "
369
 
"wants to process and/or extend one of the convenience base classes (or even "
370
 
"the default event listeners used by Hibernate out-of-the-box as these are "
371
 
"declared non-final for this purpose). Custom listeners can either be "
372
 
"registered programmatically through the <literal>Configuration</literal> "
373
 
"object, or specified in the Hibernate configuration XML. Declarative "
374
 
"configuration through the properties file is not supported. Here is an "
375
 
"example of a custom load event listener:"
376
 
msgstr ""
377
 
"Un oyente personalizado debe implementar la interface apropiada para el "
378
 
"evento que quiere procesar y/o extender una de las clases base de "
379
 
"conveniencia (o incluso los oyentes de eventos por defecto usados por "
380
 
"Hibernate de f&#x00e1;brica al ser &#x00e9;stos declarados non-final para "
381
 
"este prop&#x00f3;sito). Los oyentes personalizados pueden ser registrados "
382
 
"program&#x00e1;ticamente a trav&#x00e9;s del objeto <literal>Configuration</"
383
 
"literal>, o especificados en el XML de configuraci&#x00f3;n de Hibernate (la "
384
 
"declaraci&#x00f3;n declarativa a trav&#x00e9;s del fichero de propiedades no "
385
 
"est&#x00e1; soportada). He aqu&#x00ed; un ejemplo de un oyente personalizado "
386
 
"de eventos load:"
387
 
 
388
 
#. Tag: programlisting
389
 
#: events.xml:123
390
 
#, no-c-format
391
 
msgid ""
392
 
"<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
393
 
"    // this is the single method defined by the LoadEventListener interface\n"
394
 
"    public void onLoad(LoadEvent event, LoadEventListener.LoadType "
395
 
"loadType)\n"
396
 
"            throws HibernateException {\n"
397
 
"        if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
398
 
"getEntityId() ) ) {\n"
399
 
"            throw MySecurityException(\"Unauthorized access\");\n"
400
 
"        }\n"
401
 
"    }\n"
402
 
"}]]>"
403
 
msgstr ""
404
 
"<![CDATA[public class MyLoadListener extends DefaultLoadEventListener {\n"
405
 
"    // this is the single method defined by the LoadEventListener interface\n"
406
 
"    public Object onLoad(LoadEvent event, LoadEventListener.LoadType "
407
 
"loadType)\n"
408
 
"            throws HibernateException {\n"
409
 
"        if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
410
 
"getEntityId() ) ) {\n"
411
 
"            throw MySecurityException(\"Unauthorized access\");\n"
412
 
"        }\n"
413
 
"        return super.onLoad(event, loadType);\n"
414
 
"    }\n"
415
 
"}]]>"
416
 
 
417
 
#. Tag: para
418
 
#: events.xml:125
419
 
#, no-c-format
420
 
msgid ""
421
 
"You also need a configuration entry telling Hibernate to use the listener in "
422
 
"addition to the default listener:"
423
 
msgstr ""
424
 
"Necesitas adem&#x00e1;s una entrada de configuraci&#x00f3;n dici&#x00e9;"
425
 
"ndole a Hibernate que use el oyente en vez del oyente por defecto:"
426
 
 
427
 
#. Tag: programlisting
428
 
#: events.xml:130
429
 
#, no-c-format
430
 
msgid ""
431
 
"<![CDATA[<hibernate-configuration>\n"
432
 
"    <session-factory>\n"
433
 
"        ...\n"
434
 
"        <event type=\"load\">\n"
435
 
"            <listener class=\"com.eg.MyLoadListener\"/>\n"
436
 
"            <listener class=\"org.hibernate.event.def."
437
 
"DefaultLoadEventListener\"/>\n"
438
 
"        </event>\n"
439
 
"    </session-factory>\n"
440
 
"</hibernate-configuration>]]>"
441
 
msgstr ""
442
 
"<![CDATA[<hibernate-configuration>\n"
443
 
"    <session-factory>\n"
444
 
"        ...\n"
445
 
"        <listener type=\"load\" class=\"MyLoadListener\"/>\n"
446
 
"    </session-factory>\n"
447
 
"</hibernate-configuration>]]>"
448
 
 
449
 
#. Tag: para
450
 
#: events.xml:132
451
 
#, fuzzy, no-c-format
452
 
msgid "Instead, you can register it programmatically:"
453
 
msgstr "En cambio, puedes registrarlo program&#x00e1;ticamente:"
454
 
 
455
 
#. Tag: programlisting
456
 
#: events.xml:136
457
 
#, no-c-format
458
 
msgid ""
459
 
"<![CDATA[Configuration cfg = new Configuration();\n"
460
 
"LoadEventListener[] stack = { new MyLoadListener(), new "
461
 
"DefaultLoadEventListener() };\n"
462
 
"cfg.EventListeners().setLoadEventListeners(stack);]]>"
463
 
msgstr ""
464
 
"<![CDATA[Configuration cfg = new Configuration();\n"
465
 
"cfg.getSessionEventListenerConfig().setLoadEventListener( new MyLoadListener"
466
 
"() );]]>"
467
 
 
468
 
#. Tag: para
469
 
#: events.xml:138
470
 
#, fuzzy, no-c-format
471
 
msgid ""
472
 
"Listeners registered declaratively cannot share instances. If the same class "
473
 
"name is used in multiple <literal>&lt;listener/&gt;</literal> elements, each "
474
 
"reference will result in a separate instance of that class. If you need to "
475
 
"share listener instances between listener types you must use the "
476
 
"programmatic registration approach."
477
 
msgstr ""
478
 
"Los oyentes registrados declarativamente no pueden compartir instancias. Si "
479
 
"el mismo nombre de clase es usado en m&#x00fa;ltiples elementos <literal>&lt;"
480
 
"listener/&gt;</literal>, cada referencia resultar&#x00e1; en una instancia "
481
 
"separada de esa clase. Si necesitas la capacidad de compartir instancias de "
482
 
"oyentes entre tipos de oyente debes usar el enfoque de registraci&#x00f3;n "
483
 
"program&#x00e1;tica."
484
 
 
485
 
#. Tag: para
486
 
#: events.xml:146
487
 
#, fuzzy, no-c-format
488
 
msgid ""
489
 
"Why implement an interface and define the specific type during "
490
 
"configuration? A listener implementation could implement multiple event "
491
 
"listener interfaces. Having the type additionally defined during "
492
 
"registration makes it easier to turn custom listeners on or off during "
493
 
"configuration."
494
 
msgstr ""
495
 
"&#x00bf;Por qu&#x00e9; implementar una interface y definir el tipo "
496
 
"espc&#x00ed;fico durante la configuraci&#x00f3;n? Bueno, una "
497
 
"implementaci&#x00f3;n de oyente podr&#x00ed;a implementar m&#x00fa;ltiples "
498
 
"interfaces de oyente de eventos. Teniendo el tipo definido adicionalmente "
499
 
"durante la registraci&#x00f3;n lo hace m&#x00e1;s f&#x00e1;cil para activar "
500
 
"o desactivar oyentes personalizados durante la configuraci&#x00f3;n."
501
 
 
502
 
#. Tag: title
503
 
#: events.xml:156
504
 
#, no-c-format
505
 
msgid "Hibernate declarative security"
506
 
msgstr "Seguridad declarativa de Hibernate"
507
 
 
508
 
#. Tag: para
509
 
#: events.xml:157
510
 
#, fuzzy, no-c-format
511
 
msgid ""
512
 
"Usually, declarative security in Hibernate applications is managed in a "
513
 
"session facade layer. Hibernate3 allows certain actions to be permissioned "
514
 
"via JACC, and authorized via JAAS. This is an optional functionality that is "
515
 
"built on top of the event architecture."
516
 
msgstr ""
517
 
"Usualmente, la seguridad declarativa en aplicaciones Hibernate es manejada "
518
 
"en una capa de fachada de sesi&#x00f3;n. Ahora, Hibernate3 permite que "
519
 
"ciertas acciones sean permitidas v&#x00ed;a JACC, y autorizadas v&#x00ed;a "
520
 
"JAAS. Esta en una funcionalidad opcional constru&#x00ed;da encima de la "
521
 
"arquitectura de eventos."
522
 
 
523
 
#. Tag: para
524
 
#: events.xml:163
525
 
#, no-c-format
526
 
msgid ""
527
 
"First, you must configure the appropriate event listeners, to enable the use "
528
 
"of JAAS authorization."
529
 
msgstr ""
530
 
"Primero, debes configurar los oyentes de eventos apropiados, para habilitar "
531
 
"el uso de autorizaci&#x00f3;n JAAS."
532
 
 
533
 
#. Tag: programlisting
534
 
#: events.xml:168
535
 
#, no-c-format
536
 
msgid ""
537
 
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
538
 
"JACCPreDeleteEventListener\"/>\n"
539
 
"<listener type=\"pre-update\" class=\"org.hibernate.secure."
540
 
"JACCPreUpdateEventListener\"/>\n"
541
 
"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
542
 
"JACCPreInsertEventListener\"/>\n"
543
 
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
544
 
"JACCPreLoadEventListener\"/>]]>"
545
 
msgstr ""
546
 
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
547
 
"JACCPreDeleteEventListener\"/>\n"
548
 
"<listener type=\"pre-update\" class=\"org.hibernate.secure."
549
 
"JACCPreUpdateEventListener\"/>\n"
550
 
"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
551
 
"JACCPreInsertEventListener\"/>\n"
552
 
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
553
 
"JACCPreLoadEventListener\"/>]]>"
554
 
 
555
 
#. Tag: para
556
 
#: events.xml:170
557
 
#, fuzzy, no-c-format
558
 
msgid ""
559
 
"Note that <literal>&lt;listener type=\"...\" class=\"...\"/&gt;</literal> is "
560
 
"shorthand for <literal>&lt;event type=\"...\"&gt;&lt;listener class=\"...\"/"
561
 
"&gt;&lt;/event&gt;</literal> when there is exactly one listener for a "
562
 
"particular event type."
563
 
msgstr ""
564
 
"UNTRANSLATED! Note that <literal>&lt;listener type=\"...\" class=\"...\"/&gt;"
565
 
"</literal> is just a shorthand for <literal>&lt;event type=\"...\"&gt;&lt;"
566
 
"listener class=\"...\"/&gt;&lt;/event&gt;</literal> when there is exactly "
567
 
"one listener for a particular event type."
568
 
 
569
 
#. Tag: para
570
 
#: events.xml:176
571
 
#, fuzzy, no-c-format
572
 
msgid ""
573
 
"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
574
 
"permissions to roles:"
575
 
msgstr ""
576
 
"Seguido, a&#x00fa;n en <literal>hibernate.cfg.xml</literal>, liga los "
577
 
"permisos a roles:"
578
 
 
579
 
#. Tag: programlisting
580
 
#: events.xml:180
581
 
#, no-c-format
582
 
msgid ""
583
 
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
584
 
"read\"/>\n"
585
 
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
586
 
msgstr ""
587
 
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
588
 
"read\"/>\n"
589
 
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
590
 
 
591
 
#. Tag: para
592
 
#: events.xml:182
593
 
#, no-c-format
594
 
msgid "The role names are the roles understood by your JACC provider."
595
 
msgstr "Los nombres de role son los roles entendidos por tu proveedor de JACC."
596
 
 
597
 
#~ msgid "ROLES_OF_TRANSLATORS"
598
 
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
599
 
 
600
 
#~ msgid "CREDIT_FOR_TRANSLATORS"
601
 
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"