Project

General

Profile

Revision a7dfbba0

IDa7dfbba01b093ca9198745b16f36bbb1424f286a
Parent 6babc503
Child 0e24cd14

Added by Francois POIROTTE almost 15 years ago

Modification des templates/controllers de Vigiboard pour gérer un mieux l'i18n.
Mise à jour des fichiers de traduction de Vigiboard.
Ajout des fichiers de traduction de Vigicore au SVN.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@640 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

vigiboard/config/vigiboard_cfg.py
25 25
    # Version de Vigiboard
26 26
    'vigiboard_version': u'0.1',
27 27

  
28
    # URL pour le logo Vigilo, si vide on renvoi sur /
28
    # URL du lien présent sur le logo Vigilo.
29
    # Si absent ou vide, on redirige vers la racine de Vigiboard.
29 30
    'vigiboard_links.logo': '',
30 31

  
31 32
    # URL des tickets, possibilités:
vigiboard/controllers/vigiboard_controller.py
7 7
from tg import expose, flash, require, url, request, redirect
8 8

  
9 9
from pylons.i18n import ugettext as _, lazy_ugettext as l_
10
from catwalk.tg2 import Catwalk
11 10
from repoze.what import predicates
12 11

  
13 12
from vigiboard.lib.base import BaseController
14 13
from vigiboard.model import DBSession 
15 14
from vigiboard.controllers.error import ErrorController
16 15
from vigiboard import model
16

  
17 17
class VigiboardRootController(BaseController):
18 18
    """
19 19
    The root controller for the vigiboard application.
......
26 26
    
27 27
    Keep in mind that WSGI applications shouldn't be mounted directly: They
28 28
    must be wrapped around with :class:`tg.controllers.WSGIAppController`.
29
    
30 29
    """
31
    admin = Catwalk(model, DBSession)
32
    
33
    error = ErrorController()
34

  
35
    @expose('vigiboard.templates.authentication')
36
    def auth(self):
37
        """Display some information about auth* on this application."""
38
        return dict(page='auth')
39 30

  
40
    @expose('vigiboard.templates.index')
41
    @require(predicates.has_permission('manage', msg=l_('Only for managers')))
42
    def manage_permission_only(self, **kw):
43
        """Illustrate how a page for managers only works."""
44
        return dict(page='managers stuff')
45

  
46
    @expose('vigiboard.templates.index')
47
    @require(predicates.is_user('editor', msg=l_('Only for the editor')))
48
    def editor_user_only(self, **kw):
49
        """Illustrate how a page exclusive for the editor works."""
50
        return dict(page='editor stuff')
31
    error = ErrorController()
51 32

  
52 33
    @expose('vigiboard.templates.login')
53 34
    def login(self, came_from=url('/')):
......
57 38
            flash(_('Wrong credentials'), 'warning')
58 39
        return dict(page='login', login_counter=str(login_counter),
59 40
                    came_from=came_from)
60
    
41

  
61 42
    @expose()
62 43
    def post_login(self, came_from=url('/')):
63 44
        """
64 45
        Redirect the user to the initially requested page on successful
65 46
        authentication or redirect her back to the login page if login failed.
66
        
67 47
        """
68 48
        if not request.identity:
69 49
            login_counter = request.environ['repoze.who.logins'] + 1
......
77 57
        """
78 58
        Redirect the user to the initially requested page on logout and say
79 59
        goodbye as well.
80
        
81 60
        """
82 61
        flash(_('We hope to see you soon!'))
83 62
        redirect(came_from)
vigiboard/controllers/vigiboard_plugin/shn.py
8 8
        VigiboardRequestPlugin
9 9
from vigiboard.model import DBSession, ServiceHautNiveau, Events
10 10
from sqlalchemy import sql
11
from pylons.i18n import ugettext as _
11
from pylons.i18n import gettext as _
12 12
from tg import tmpl_context, url
13 13
from tw.jquery.ui_dialog import JQueryUIDialog
14 14

  
......
26 26
            outerjoin = [(ServiceHautNiveau,
27 27
                ServiceHautNiveau.servicename_dep == Events.servicename)],
28 28
            groupby = [(Events),(ServiceHautNiveau.servicename_dep)],
29
            name = _(u'SHNs impactés'),
30
            style = {'title': u'Services de haut niveau impactés',
29
            name = _(u'Impacted HLS'),
30
            style = {'title': _(u'Impacted High-Level Services'),
31 31
                'style': 'text-align:center'},
32 32
            object_name = "shn"
33 33
        )
......
38 38
            dico = {
39 39
                'baseurl': url(''),
40 40
                'idevent': req[0].idevent,
41
                'shn_impactes': req[2],
41
                'impacted_hls': req[2],
42 42
            }
43 43
            return '<a href="javascript:vigiboard_shndialog(\'%(baseurl)s\','\
44
                    '\'%(idevent)d\')" class="SHNLien">%(shn_impactes)d</a>' % \
44
                    '\'%(idevent)d\')" class="SHNLien">%(impacted_hls)d</a>' % \
45 45
                    dico
46 46
        else:
47 47
            return ""
......
52 52
        # XXX We insert 10 unbreakable spaces (&#160;) to workaround a bug
53 53
        # in JQuery where the dialog's width is incorrectly set.
54 54
        tmpl_context.shndialog = JQueryUIDialog(id='SHNDialog',
55
                autoOpen=False, title='%s%s' % (_('Service de haut niveau'),
55
                autoOpen=False, title='%s%s' % (_(u'High-Level Service'),
56 56
                '&#160;' * 10))
57 57
        context.append([tmpl_context.shndialog, self.object_name])
58 58

  
vigiboard/controllers/vigiboardrequest.py
277 277
        lst_title = [
278 278
                ['',{}],
279 279
                [_('Date')+ '<span style="font-weight:normal">' + \
280
                        _('<br />[Duration]') + '</span>',
280
                        '<br />['+_('Duration') + ']</span>',
281 281
                        {'style':'text-align:left'}],
282
                ['#', {'title':_('Nombre d\'occurrences')}],
282
                ['#', {'title':_('Occurrence count')}],
283 283
                [_('Host'), {'style':'text-align:left'}],
284
                [_('Service Type<br />Service Name'),
284
                [_('Service Type')+'<br />'+_('Service Name'),
285 285
                    {'style':'text-align:left'}], 
286 286
                [_('Output'), {'style':'text-align:left'}]
287 287
                ]
288 288
        lst_title.extend([[plug.name, plug.style] for plug in self.plugin])
289
        lst_title.extend([[_('[TT]'), {'title': _('Trouble Ticket')}],
289
        lst_title.extend([['['+_('TT')+']', {'title': _('Trouble Ticket')}],
290 290
                            ['', {}]])
291 291
        events = [lst_title]
292 292
        i = 0
vigiboard/i18n/en_US/LC_MESSAGES/vigiboard.po
8 8
"Project-Id-Version: vigiboard 0.1\n"
9 9
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 10
"POT-Creation-Date: 2009-07-06 11:19+0200\n"
11
"PO-Revision-Date: 2009-09-03 14:08+0200\n"
11
"PO-Revision-Date: 2009-09-04 11:27+0200\n"
12 12
"Last-Translator: Thomas ANDREJAK <thomas.andrejak@c-s.fr>\n"
13 13
"Language-Team: en_US <LL@li.org>\n"
14 14
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
......
74 74
msgid "Updated successfully"
75 75
msgstr ""
76 76

  
77
#: vigiboard/controllers/vigiboard_controller.py:41
78
msgid "Only for managers"
79
msgstr ""
80

  
81
#: vigiboard/controllers/vigiboard_controller.py:47
82
msgid "Only for the editor"
83
msgstr ""
84

  
85
#: vigiboard/controllers/vigiboard_controller.py:57
77
#: vigiboard/controllers/vigiboard_controller.py:38
86 78
msgid "Wrong credentials"
87 79
msgstr ""
88 80

  
89
#: vigiboard/controllers/vigiboard_controller.py:72
81
#: vigiboard/controllers/vigiboard_controller.py:52
90 82
#, python-format
91 83
msgid "Welcome back, %s!"
92 84
msgstr ""
93 85

  
94
#: vigiboard/controllers/vigiboard_controller.py:82
86
#: vigiboard/controllers/vigiboard_controller.py:61
95 87
msgid "We hope to see you soon!"
96 88
msgstr ""
97 89

  
......
100 92
msgstr ""
101 93

  
102 94
#: vigiboard/controllers/vigiboardrequest.py:280
103
msgid "<br />[Duration]"
95
msgid "Duration"
104 96
msgstr ""
105 97

  
106 98
#: vigiboard/controllers/vigiboardrequest.py:282
107
msgid "Nombre d'occurrences"
99
msgid "Occurrence count"
108 100
msgstr ""
109 101

  
110 102
#: vigiboard/controllers/vigiboardrequest.py:283
......
113 105
msgstr ""
114 106

  
115 107
#: vigiboard/controllers/vigiboardrequest.py:284
116
msgid "Service Type<br />Service Name"
108
msgid "Service Type"
109
msgstr ""
110

  
111
#: vigiboard/controllers/vigiboardrequest.py:284
112
msgid "Service Name"
117 113
msgstr ""
118 114

  
119 115
#: vigiboard/controllers/vigiboardrequest.py:286
......
122 118
msgstr ""
123 119

  
124 120
#: vigiboard/controllers/vigiboardrequest.py:289
125
msgid "[TT]"
121
msgid "TT"
126 122
msgstr ""
127 123

  
128 124
#: vigiboard/controllers/vigiboardrequest.py:289
......
139 135
msgstr ""
140 136

  
141 137
#: vigiboard/controllers/vigiboardrequest.py:436
138
#: vigiboard/templates/vigiboard_history_table.html:12
142 139
msgid "History"
143 140
msgstr ""
144 141

  
......
147 144
msgstr ""
148 145

  
149 146
#: vigiboard/controllers/vigiboard_plugin/shn.py:29
150
#, fuzzy
151
msgid "SHNs impactés"
152
msgstr "Impacted SHNs"
153

  
154
#: vigiboard/controllers/vigiboard_plugin/shn.py:55
155
msgid "Service de haut niveau"
156
msgstr ""
157

  
158
#: vigiboard/templates/about.html:11
159
msgid "Learning TurboGears 2.0: Quick guide to the Quickstart pages."
160
msgstr ""
161

  
162
#: vigiboard/templates/about.html:18
163
msgid "Architectural basics of a quickstart TG2 site."
164
msgstr ""
165

  
166
#: vigiboard/templates/about.html:19
167
msgid ""
168
"The TG2 quickstart command produces this basic TG site.  Here's how it "
169
"works."
170
msgstr ""
171

  
172
#: vigiboard/templates/about.html:22
173
msgid "Code my data model"
174
msgstr ""
175

  
176
#: vigiboard/templates/about.html:23
177
msgid ""
178
"When you want a model for storing favorite links or wiki content, \n"
179
"            the"
180
msgstr ""
181

  
182
#: vigiboard/templates/about.html:24
183
msgid "/model"
184
msgstr ""
185

  
186
#: vigiboard/templates/about.html:24
187
msgid "folder in your site is ready to go."
188
msgstr ""
189

  
190
#: vigiboard/templates/about.html:25
191
msgid ""
192
"You can build a dynamic site without any data model at all. There \n"
193
"            still be a default data-model template for you if you didn't "
194
"enable \n"
195
"            authentication and authorization in quickstart. If you "
196
"enabled\n"
197
"            it, you got auth data-model made for you."
198
msgstr ""
199

  
200
#: vigiboard/templates/about.html:31
201
msgid "Design my URL structure"
202
msgstr ""
203

  
204
#: vigiboard/templates/about.html:32
205
msgid "The \""
206
msgstr ""
207

  
208
#: vigiboard/templates/about.html:32
209
msgid "root.py"
210
msgstr ""
211

  
212
#: vigiboard/templates/about.html:32
213
msgid "\" file under the"
214
msgstr ""
215

  
216
#: vigiboard/templates/about.html:33
217
msgid "/controllers"
218
msgstr ""
219

  
220
#: vigiboard/templates/about.html:33
221
msgid ""
222
"folder has your URLs.  When you \n"
223
"            called this url ("
224
msgstr ""
225

  
226
#: vigiboard/templates/about.html:34 vigiboard/templates/about.html:36
227
msgid "about"
228
msgstr ""
229

  
230
#: vigiboard/templates/about.html:34
231
msgid ""
232
"), \n"
233
"            the command went through the RootController class to the"
234
msgstr ""
235

  
236
#: vigiboard/templates/about.html:36
237
msgid "method."
238
msgstr ""
239

  
240
#: vigiboard/templates/about.html:37
241
msgid ""
242
"Those Python methods are responsible to create the dictionary of\n"
243
"             variables that will be used in your web views (template)."
244
msgstr ""
245

  
246
#: vigiboard/templates/about.html:41
247
msgid "Reuse the web page elements"
248
msgstr ""
249

  
250
#: vigiboard/templates/about.html:42
251
msgid ""
252
"A web page viewed by user could be constructed by single or \n"
253
"            several reusable templates under"
254
msgstr ""
255

  
256
#: vigiboard/templates/about.html:43
257
msgid "/templates"
258
msgstr ""
259

  
260
#: vigiboard/templates/about.html:43
261
msgid ""
262
". \n"
263
"            Take 'about' page for example, each reusable templates "
264
"generating \n"
265
"            a part of the page. We'll cover them in the order of where "
266
"they are \n"
267
"            found, listed near the top of the about.html template"
147
msgid "Impacted HLS"
268 148
msgstr ""
269 149

  
270
#: vigiboard/templates/about.html:47
271
msgid "header.html"
150
#: vigiboard/controllers/vigiboard_plugin/shn.py:30
151
msgid "Impacted High-Level Services"
272 152
msgstr ""
273 153

  
274
#: vigiboard/templates/about.html:47
275
msgid ""
276
"- The \n"
277
"            \"header.html\" template contains the HTML code to display "
278
"the \n"
279
"            'header': The blue gradient, TG2 logo, and some site text at "
280
"the \n"
281
"            top of every page it is included on. When the \"about.html\" "
282
"template \n"
283
"            is called, it includes this \"header.html\" template (and the"
284
" others) \n"
285
"            with a"
286
msgstr ""
287

  
288
#: vigiboard/templates/about.html:52
289
msgid "<xi:include />"
290
msgstr ""
291

  
292
#: vigiboard/templates/about.html:52
293
msgid ""
294
"tag, part of \n"
295
"            the Genshi templating system. The \"header.html\" template is"
296
" not a \n"
297
"            completely static HTML -- it also dynamically displays the "
298
"current \n"
299
"            page name with a Genshi template method called \"replace\" "
300
"with the \n"
301
"            code:"
302
msgstr ""
303

  
304
#: vigiboard/templates/about.html:56
305
msgid "<span py:replace=\"page\"/>"
306
msgstr ""
307

  
308
#: vigiboard/templates/about.html:56
309
msgid ""
310
". \n"
311
"            It means replace this"
312
msgstr ""
313

  
314
#: vigiboard/templates/about.html:57
315
msgid "<span />"
316
msgstr ""
317

  
318
#: vigiboard/templates/about.html:57
319
msgid ""
320
"region with the contents found in the variable 'page' that has \n"
321
"            been sent in the dictionary to this \"about.html\" template, "
322
"and is \n"
323
"            available through that namespace for use by this "
324
"\"header.html\" \n"
325
"            template.  That's how it changes in the header depending on "
326
"what \n"
327
"            page you are visiting."
328
msgstr ""
329

  
330
#: vigiboard/templates/about.html:64
331
msgid "sidebars.html"
332
msgstr ""
333

  
334
#: vigiboard/templates/about.html:64
335
msgid ""
336
"- The\n"
337
"             sidebars (navigation areas on the right side of the page) "
338
"are \n"
339
"             generated as two separate"
340
msgstr ""
341

  
342
#: vigiboard/templates/about.html:66 vigiboard/templates/about.html:67
343
msgid "py:def"
344
msgstr ""
345

  
346
#: vigiboard/templates/about.html:66
347
msgid ""
348
"blocks \n"
349
"             in the \"sidebars.html\" template.  The"
350
msgstr ""
351

  
352
#: vigiboard/templates/about.html:67
353
msgid ""
354
"construct is best thought of as a \"macro\" code... a simple way to \n"
355
"             separate and reuse common code snippets.  All it takes to "
356
"include \n"
357
"             these on the \"about.html\" page template is to write"
358
msgstr ""
359

  
360
#: vigiboard/templates/about.html:73
361
msgid "${sidebar_top()}"
362
msgstr ""
363

  
364
#: vigiboard/templates/about.html:75
365
msgid "${sidebar_bottom()}"
366
msgstr ""
367

  
368
#: vigiboard/templates/about.html:77
369
msgid ""
370
"in the page where they are wanted.  CSS styling (in \n"
371
"        \"/public/css/style.css\") floats them off to the right side.  "
372
"You can \n"
373
"        remove a sidebar or add more of them, and the CSS will place them"
374
" one \n"
375
"        atop the other."
376
msgstr ""
377

  
378
#: vigiboard/templates/about.html:81
379
msgid ""
380
"This is, of course, also exactly how the header and footer \n"
381
"            templates are also displayed in their proper places, but "
382
"we'll \n"
383
"            cover that in the \"master.html\" template below."
384
msgstr ""
385

  
386
#: vigiboard/templates/about.html:84
387
msgid ""
388
"Oh, and in sidebar_top we've added a dynamic menu that shows the \n"
389
"            link to this page at the top when you're at the \"index\" "
390
"page, and \n"
391
"            shows a link to the Home (index) page when you're here.  "
392
"Study the \n"
393
"            \"sidebars.html\" template to see how we used"
394
msgstr ""
395

  
396
#: vigiboard/templates/about.html:88
397
msgid "py:choose"
398
msgstr ""
399

  
400
#: vigiboard/templates/about.html:88
401
msgid "for that."
402
msgstr ""
403

  
404
#: vigiboard/templates/about.html:89
405
msgid "footer.html"
406
msgstr ""
407

  
408
#: vigiboard/templates/about.html:89
409
msgid ""
410
"- The \n"
411
"            \"footer.html\" block is simple, but also utilizes a special"
412
" \n"
413
"            \"replace\" method to set the current YEAR in the footer "
414
"copyright \n"
415
"            message. The code is:"
416
msgstr ""
417

  
418
#: vigiboard/templates/about.html:93
419
msgid "<span py:replace=\"now.strftime('%Y')\">"
420
msgstr ""
421

  
422
#: vigiboard/templates/about.html:94
423
msgid ""
424
"and it uses the variable \"now\" that was passed \n"
425
"            in with the dictionary of variables.  But because \"now\" is "
426
"a \n"
427
"            datetime object, we can use the Python"
428
msgstr ""
429

  
430
#: vigiboard/templates/about.html:97
431
msgid "\"strftime()\""
432
msgstr ""
433

  
434
#: vigiboard/templates/about.html:97
435
msgid ""
436
"method with the \"replace\" \n"
437
"            call to say \"Just Display The Year Here\".  Simple, elegant;"
438
" we \n"
439
"            format the date display in the template (the View in the \n"
440
"            Model/View/Controller architecture) rather than formatting it"
441
" in \n"
442
"            the Controller method and sending it to the template as a "
443
"string \n"
444
"            variable."
445
msgstr ""
446

  
447
#: vigiboard/templates/about.html:103
448
msgid "master.html"
449
msgstr ""
450

  
451
#: vigiboard/templates/about.html:103
452
msgid ""
453
"- The \n"
454
"            \"master.html\" template is called last, by design.  The "
455
"\"master.html\" \n"
456
"            template controls the overall design of the page we're "
457
"looking at, \n"
458
"            calling first the \"header\" py:def macro, then the putting "
459
"everything \n"
460
"            from this \"about.html\" template into the \"content\" div, "
461
"and \n"
462
"            then calling the \"footer\" macro at the end.  Thus the "
463
"\"master.html\" \n"
464
"            template provides the overall architecture for each page in "
465
"this \n"
466
"            site."
467
msgstr ""
468

  
469
#: vigiboard/templates/about.html:111
470
msgid ""
471
"But why then shouldn't we call it first?  Isn't it the most \n"
472
"            important?  Perhaps, but that's precisely why we call it "
473
"LAST. \n"
474
"            The \"master.html\" template needs to know where to find "
475
"everything \n"
476
"            else, everything that it will use in py:def macros to build "
477
"the\n"
478
"             page.  So that means we call the other templates first, and "
479
"then \n"
480
"             call \"master.html\"."
481
msgstr ""
482

  
483
#: vigiboard/templates/about.html:117
484
msgid ""
485
"There's more to the \"master.html\" template... study it to see how \n"
486
"           the <title> tags and static JS and CSS files are brought into"
487
" \n"
488
"           the page.  Templating with Genshi is a powerful tool and we've"
489
" only \n"
490
"           scratched the surface.  There are also a few little CSS tricks"
491
" \n"
492
"           hidden in these pages, like the use of a \"clearingdiv\" to "
493
"make \n"
494
"           sure that your footer stays below the sidebars and always "
495
"looks \n"
496
"           right.  That's not TG2 at work, just CSS.  You'll need all "
497
"your \n"
498
"           skills to build a fine web app, but TG2 will make the hard "
499
"parts \n"
500
"           easier so that you can concentrate more on good design and "
501
"content \n"
502
"           rather than struggling with mechanics."
503
msgstr ""
504

  
505
#: vigiboard/templates/about.html:129
506
msgid "Good luck with TurboGears 2!"
507
msgstr ""
508

  
509
#: vigiboard/templates/authentication.html:11
510
msgid "Learning TurboGears 2.0: Quick guide to authentication."
511
msgstr ""
512

  
513
#: vigiboard/templates/authentication.html:18
514
msgid "Authentication & Authorization in a TG2 site."
515
msgstr ""
516

  
517
#: vigiboard/templates/authentication.html:19
518
msgid ""
519
"If you have access to this page, this means you have enabled "
520
"authentication and authorization\n"
521
"    in the quickstart to create your project."
522
msgstr ""
523

  
524
#: vigiboard/templates/authentication.html:21
525
msgid ""
526
"The paster command will have created a few specific controllers for you. "
527
"But before you\n"
528
"    go to play with those controllers you'll need to make sure your "
529
"application has been\n"
530
"    properly bootstapped.\n"
531
"    This is dead easy, here is how to do this:"
532
msgstr ""
533

  
534
#: vigiboard/templates/authentication.html:28
535
msgid "paster setup-app development.ini"
536
msgstr ""
537

  
538
#: vigiboard/templates/authentication.html:32
539
msgid ""
540
"inside your application's folder and you'll get a database setup (using "
541
"the preferences you have\n"
542
"    set in your development.ini file). This database will also have been "
543
"prepopulated with some\n"
544
"    default logins/passwords so that you can test the secured controllers"
545
" and methods."
546
msgstr ""
547

  
548
#: vigiboard/templates/authentication.html:37
549
msgid ""
550
"To change the comportement of this setup-app command you just need to "
551
"edit the"
552
msgstr ""
553

  
554
#: vigiboard/templates/authentication.html:38
555
msgid "websetup.py"
556
msgstr ""
557

  
558
#: vigiboard/templates/authentication.html:38
559
msgid "file."
560
msgstr ""
561

  
562
#: vigiboard/templates/authentication.html:40
563
msgid "Now try to visiting the"
564
msgstr ""
565

  
566
#: vigiboard/templates/authentication.html:41
567
msgid "manage_permission_only"
568
msgstr ""
569

  
570
#: vigiboard/templates/authentication.html:41
571
msgid "URL. You will be challenged with a login/password form."
572
msgstr ""
573

  
574
#: vigiboard/templates/authentication.html:43
575
msgid ""
576
"Only managers are authorized to visit this method. You will need to log-"
577
"in using:"
578
msgstr ""
579

  
580
#: vigiboard/templates/authentication.html:46
581
msgid "login: manager"
582
msgstr ""
583

  
584
#: vigiboard/templates/authentication.html:51
585
msgid "password: managepass"
586
msgstr ""
587

  
588
#: vigiboard/templates/authentication.html:56
589
msgid "Another protected resource is"
590
msgstr ""
591

  
592
#: vigiboard/templates/authentication.html:57
593
msgid "editor_user_only"
594
msgstr ""
595

  
596
#: vigiboard/templates/authentication.html:57
597
msgid ""
598
". This one is protected by a different set of permissions.\n"
599
"    You will need to be"
600
msgstr ""
601

  
602
#: vigiboard/templates/authentication.html:58
603
msgid "editor"
604
msgstr ""
605

  
606
#: vigiboard/templates/authentication.html:58
607
msgid "with a password of"
608
msgstr ""
609

  
610
#: vigiboard/templates/authentication.html:58
611
msgid "editpass"
612
msgstr ""
613

  
614
#: vigiboard/templates/authentication.html:58
615
msgid "to be able to access it."
616
msgstr ""
617

  
618
#: vigiboard/templates/authentication.html:60
619
msgid ""
620
"The last kind of protected resource in this quickstarted app is a full so"
621
" called"
622
msgstr ""
623

  
624
#: vigiboard/templates/authentication.html:61
625
msgid "secure controller"
626
msgstr ""
627

  
628
#: vigiboard/templates/authentication.html:61
629
msgid ""
630
". This controller is protected globally.\n"
631
"    Instead of having a @require decorator on each method, we have set an"
632
" allow_only attribute at the class level. All the methods in this "
633
"controller will\n"
634
"    require the same level of access. You need to be manager to access"
635
msgstr ""
636

  
637
#: vigiboard/templates/authentication.html:63
638
msgid "secc"
639
msgstr ""
640

  
641
#: vigiboard/templates/authentication.html:63
642
msgid "or"
643
msgstr ""
644

  
645
#: vigiboard/templates/authentication.html:63
646
msgid "secc/some_where"
154
#: vigiboard/controllers/vigiboard_plugin/shn.py:55
155
msgid "High-Level Service"
647 156
msgstr ""
648 157

  
649 158
#: vigiboard/templates/debug.html:11
......
793 302
msgid "A quick guide to this TG2 site"
794 303
msgstr ""
795 304

  
796
#: vigiboard/templates/sidebars.html:14
305
#: vigiboard/templates/sidebars.html:14 vigiboard/templates/vigiboard.html:33
797 306
msgid "Home"
798 307
msgstr ""
799 308

  
......
886 395
msgstr ""
887 396

  
888 397
#: vigiboard/templates/vigiboard.html:17
889
msgid "Barre Outils"
398
msgid "Toolbar"
890 399
msgstr ""
891 400

  
892
#: vigiboard/templates/vigiboard.html:20 vigiboard/templates/vigiboard.html:21
893
msgid "logo"
401
#: vigiboard/templates/vigiboard.html:21
402
msgid "v"
894 403
msgstr ""
895 404

  
896
#: vigiboard/templates/vigiboard.html:20 vigiboard/templates/vigiboard.html:21
897
msgid "Logo"
405
#: vigiboard/templates/vigiboard.html:27
406
msgid "You are in Search mode, click here to return to the initial mode."
898 407
msgstr ""
899 408

  
900
#: vigiboard/templates/vigiboard.html:21
901
msgid "v"
409
#: vigiboard/templates/vigiboard.html:36
410
msgid "Filter display"
902 411
msgstr ""
903 412

  
904
#: vigiboard/templates/vigiboard.html:24
905
msgid "Mode recherche,"
413
#: vigiboard/templates/vigiboard.html:39
414
msgid "Log out"
906 415
msgstr ""
907 416

  
908
#: vigiboard/templates/vigiboard.html:25
909
msgid "cliquer ici"
417
#: vigiboard/templates/vigiboard.html:44
418
msgid "Default font size"
910 419
msgstr ""
911 420

  
912
#: vigiboard/templates/vigiboard.html:25
913
msgid "pour revenir au mode initial."
421
#: vigiboard/templates/vigiboard.html:45
422
msgid "Medium font size"
914 423
msgstr ""
915 424

  
916
#: vigiboard/templates/vigiboard.html:30
425
#: vigiboard/templates/vigiboard.html:46
426
msgid "Large font size"
427
msgstr ""
428

  
429
#: vigiboard/templates/vigiboard.html:51
917 430
msgid "Never"
918 431
msgstr ""
919 432

  
920
#: vigiboard/templates/vigiboard.html:31
433
#: vigiboard/templates/vigiboard.html:52
921 434
msgid "30 Secondes"
922 435
msgstr ""
923 436

  
924
#: vigiboard/templates/vigiboard.html:32
437
#: vigiboard/templates/vigiboard.html:53
925 438
msgid "1 Minute"
926 439
msgstr ""
927 440

  
928
#: vigiboard/templates/vigiboard.html:33
441
#: vigiboard/templates/vigiboard.html:54
929 442
msgid "5 Minutes"
930 443
msgstr ""
931 444

  
932
#: vigiboard/templates/vigiboard.html:34
445
#: vigiboard/templates/vigiboard.html:55
933 446
msgid "10 Minutes"
934 447
msgstr ""
935 448

  
936
#: vigiboard/templates/vigiboard.html:39
937
msgid "Default font size"
449
#: vigiboard/templates/vigiboard.html:57
450
msgid "Start"
938 451
msgstr ""
939 452

  
940
#: vigiboard/templates/vigiboard.html:40
941
msgid "Medium font size"
453
#: vigiboard/templates/vigiboard.html:76
454
msgid "Unable to save preferences"
942 455
msgstr ""
943 456

  
944
#: vigiboard/templates/vigiboard.html:41
945
msgid "Large font size"
946
msgstr ""
947

  
948
#: vigiboard/templates/vigiboard.html:45
949
msgid "Accueil"
950
msgstr ""
951

  
952
#: vigiboard/templates/vigiboard.html:48
953
msgid "Filtrer"
954
msgstr ""
955

  
956
#: vigiboard/templates/vigiboard.html:51
957
msgid "Déconnexion"
457
#: vigiboard/templates/vigiboard.html:90
458
msgid "Stop"
958 459
msgstr ""
959 460

  
960 461
#: vigiboard/templates/vigiboard_event_table.html:12
961
msgid "Tableau des évènements"
462
msgid "Events table"
962 463
msgstr ""
963 464

  
964 465
#: vigiboard/templates/vigiboard_event_table.html:17
965 466
#: vigiboard/templates/vigiboard_event_table.html:18
966
msgid "Précédente"
467
#: vigiboard/templates/vigiboard_event_table.html:164
468
msgid "Previous"
967 469
msgstr ""
968 470

  
969 471
#: vigiboard/templates/vigiboard_event_table.html:17
970 472
#: vigiboard/templates/vigiboard_event_table.html:18
971
#: vigiboard/templates/vigiboard_event_table.html:165
972
msgid "Page précédente"
473
#: vigiboard/templates/vigiboard_event_table.html:164
474
msgid "Previous page"
973 475
msgstr ""
974 476

  
975 477
#: vigiboard/templates/vigiboard_event_table.html:20
......
977 479
msgid "Showing rows %(id_first_row)d to %(id_last_row)d of %(total_rows)d"
978 480
msgstr ""
979 481

  
980
#: vigiboard/templates/vigiboard_event_table.html:21
482
#: vigiboard/templates/vigiboard_event_table.html:20
981 483
msgid "Pages"
982 484
msgstr ""
983 485

  
486
#: vigiboard/templates/vigiboard_event_table.html:27
984 487
#: vigiboard/templates/vigiboard_event_table.html:28
985
#: vigiboard/templates/vigiboard_event_table.html:29
986
msgid "Suivante"
488
#: vigiboard/templates/vigiboard_event_table.html:170
489
msgid "Next"
987 490
msgstr ""
988 491

  
492
#: vigiboard/templates/vigiboard_event_table.html:27
989 493
#: vigiboard/templates/vigiboard_event_table.html:28
990
#: vigiboard/templates/vigiboard_event_table.html:29
991
#: vigiboard/templates/vigiboard_event_table.html:171
992
msgid "Page suivante"
494
#: vigiboard/templates/vigiboard_event_table.html:170
495
msgid "Next page"
993 496
msgstr ""
994 497

  
995
#: vigiboard/templates/vigiboard_event_table.html:37
498
#: vigiboard/templates/vigiboard_event_table.html:36
499
#: vigiboard/templates/vigiboard_event_table.html:178
500
msgid "Edit selected"
501
msgstr ""
502

  
503
#: vigiboard/templates/vigiboard_event_table.html:36
504
#: vigiboard/templates/vigiboard_event_table.html:178
996 505
msgid "Edit all selected events"
997 506
msgstr ""
998 507

  
999
#: vigiboard/templates/vigiboard_event_table.html:38
1000
msgid "Sélectioner tout"
508
#: vigiboard/templates/vigiboard_event_table.html:37
509
msgid "Select/Unselect all"
1001 510
msgstr ""
1002 511

  
1003
#: vigiboard/templates/vigiboard_event_table.html:46
1004
msgid "detail"
512
#: vigiboard/templates/vigiboard_event_table.html:45
513
msgid "Details"
1005 514
msgstr ""
1006 515

  
1007
#: vigiboard/templates/vigiboard_event_table.html:46
1008
msgid "Détails sur l'évènement"
516
#: vigiboard/templates/vigiboard_event_table.html:45
517
msgid "Event details"
1009 518
msgstr ""
1010 519

  
1011
#: vigiboard/templates/vigiboard_event_table.html:59
1012
msgid "statut"
520
#: vigiboard/templates/vigiboard_event_table.html:58
521
msgid "Status"
1013 522
msgstr ""
1014 523

  
1015
#: vigiboard/templates/vigiboard_event_table.html:59
1016
msgid "Statut de l'évènement"
524
#: vigiboard/templates/vigiboard_event_table.html:58
525
msgid "Event status"
1017 526
msgstr ""
1018 527

  
1019
#: vigiboard/templates/vigiboard_event_table.html:60
1020
msgid "edit"
528
#: vigiboard/templates/vigiboard_event_table.html:59
529
msgid "Edit"
1021 530
msgstr ""
1022 531

  
1023
#: vigiboard/templates/vigiboard_event_table.html:60
1024
msgid "Editer cet élément"
532
#: vigiboard/templates/vigiboard_event_table.html:59
533
msgid "Edit this event"
1025 534
msgstr ""
1026 535

  
1027
#: vigiboard/templates/vigiboard_event_table.html:138
536
#: vigiboard/templates/vigiboard_event_table.html:137
1028 537
msgid "Initial State:"
1029 538
msgstr ""
1030 539

  
1031
#: vigiboard/templates/vigiboard_event_table.html:139
540
#: vigiboard/templates/vigiboard_event_table.html:138
1032 541
msgid "Current State:"
1033 542
msgstr ""
1034 543

  
1035
#: vigiboard/templates/vigiboard_event_table.html:142
544
#: vigiboard/templates/vigiboard_event_table.html:141
1036 545
msgid "Detailed history for this event"
1037 546
msgstr ""
1038 547

  
1039
#: vigiboard/templates/vigiboard_event_table.html:143
548
#: vigiboard/templates/vigiboard_event_table.html:142
1040 549
msgid "Detailed history for this host/service"
1041 550
msgstr ""
1042 551

  
1043
#: vigiboard/templates/vigiboard_event_table.html:165
1044
msgid "up"
1045
msgstr ""
1046

  
1047
#: vigiboard/templates/vigiboard_event_table.html:167
552
#: vigiboard/templates/vigiboard_event_table.html:166
1048 553
msgid "Showing rows 0 to 0 of 0"
1049 554
msgstr ""
1050 555

  
1051
#: vigiboard/templates/vigiboard_event_table.html:167
556
#: vigiboard/templates/vigiboard_event_table.html:166
1052 557
msgid "Page 0"
1053 558
msgstr ""
1054 559

  
1055
#: vigiboard/templates/vigiboard_event_table.html:171
1056
msgid "down"
560
#: vigiboard/templates/vigiboard_event_table.html:184
561
msgid "No event"
1057 562
msgstr ""
1058 563

  
1059
#: vigiboard/templates/vigiboard_event_table.html:179
1060
msgid "edit_all"
1061
msgstr ""
1062

  
1063
#: vigiboard/templates/vigiboard_event_table.html:179
1064
msgid "Editer tous les évènements sélectionnés"
1065
msgstr ""
1066

  
1067
#: vigiboard/templates/vigiboard_event_table.html:185
1068
msgid "Aucun évènement disponible."
1069
msgstr "No events"
1070

  
1071 564
#: vigiboard/templates/vigiboard_history_table.html:8
1072 565
msgid "There is no history."
1073 566
msgstr ""
1074 567

  
1075
#: vigiboard/templates/vigiboard_history_table.html:12
1076
msgid "Historique de l'élément"
1077
msgstr ""
1078

  
1079 568
#: vigiboard/templates/vigiboard_history_table.html:15
1080 569
msgid "Time"
1081 570
msgstr ""
vigiboard/i18n/fr_FR/LC_MESSAGES/vigiboard.po
8 8
"Project-Id-Version: vigiboard 0.1\n"
9 9
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10 10
"POT-Creation-Date: 2009-07-06 11:19+0200\n"
11
"PO-Revision-Date: 2009-09-03 14:08+0200\n"
11
"PO-Revision-Date: 2009-09-04 11:27+0200\n"
12 12
"Last-Translator: Thomas ANDREJAK <thomas.andrejak@c-s.fr>\n"
13 13
"Language-Team: fr_FR <LL@li.org>\n"
14 14
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
......
74 74
msgid "Updated successfully"
75 75
msgstr "Mise à jour réussie"
76 76

  
77
#: vigiboard/controllers/vigiboard_controller.py:41
78
msgid "Only for managers"
79
msgstr ""
80

  
81
#: vigiboard/controllers/vigiboard_controller.py:47
82
msgid "Only for the editor"
83
msgstr ""
84

  
85
#: vigiboard/controllers/vigiboard_controller.py:57
77
#: vigiboard/controllers/vigiboard_controller.py:38
86 78
msgid "Wrong credentials"
87
msgstr ""
79
msgstr "Identifiant ou mot de passe incorrect"
88 80

  
89
#: vigiboard/controllers/vigiboard_controller.py:72
81
#: vigiboard/controllers/vigiboard_controller.py:52
90 82
#, python-format
91 83
msgid "Welcome back, %s!"
92 84
msgstr ""
93 85

  
94
#: vigiboard/controllers/vigiboard_controller.py:82
86
#: vigiboard/controllers/vigiboard_controller.py:61
95 87
msgid "We hope to see you soon!"
96 88
msgstr ""
97 89

  
......
100 92
msgstr ""
101 93

  
102 94
#: vigiboard/controllers/vigiboardrequest.py:280
103
#, fuzzy
104
msgid "<br />[Duration]"
105
msgstr "Date<br />[Durée]"
95
msgid "Duration"
96
msgstr "Durée"
106 97

  
107 98
#: vigiboard/controllers/vigiboardrequest.py:282
108
msgid "Nombre d'occurrences"
109
msgstr ""
99
msgid "Occurrence count"
100
msgstr "Nombre d'occurrences"
110 101

  
111 102
#: vigiboard/controllers/vigiboardrequest.py:283
112 103
#: vigiboard/widgets/edit_event.py:40
......
114 105
msgstr "Hôte"
115 106

  
116 107
#: vigiboard/controllers/vigiboardrequest.py:284
117
msgid "Service Type<br />Service Name"
118
msgstr "Type de service<br />Nom du service"
108
msgid "Service Type"
109
msgstr "Type de service"
110

  
111
#: vigiboard/controllers/vigiboardrequest.py:284
112
msgid "Service Name"
113
msgstr "Nom du service"
119 114

  
120 115
#: vigiboard/controllers/vigiboardrequest.py:286
121 116
#: vigiboard/widgets/edit_event.py:42
......
123 118
msgstr "Sortie d'erreur"
124 119

  
125 120
#: vigiboard/controllers/vigiboardrequest.py:289
126
msgid "[TT]"
121
msgid "TT"
127 122
msgstr ""
128 123

  
129 124
#: vigiboard/controllers/vigiboardrequest.py:289
......
140 135
msgstr "Recherche d'évènements"
141 136

  
142 137
#: vigiboard/controllers/vigiboardrequest.py:436
138
#: vigiboard/templates/vigiboard_history_table.html:12
143 139
msgid "History"
144 140
msgstr "Historique"
145 141

  
......
148 144
msgstr "Erreur"
149 145

  
150 146
#: vigiboard/controllers/vigiboard_plugin/shn.py:29
151
msgid "SHNs impactés"
152
msgstr ""
153

  
154
#: vigiboard/controllers/vigiboard_plugin/shn.py:55
155
msgid "Service de haut niveau"
156
msgstr ""
157

  
158
#: vigiboard/templates/about.html:11
159
msgid "Learning TurboGears 2.0: Quick guide to the Quickstart pages."
160
msgstr ""
161

  
162
#: vigiboard/templates/about.html:18
163
msgid "Architectural basics of a quickstart TG2 site."
164
msgstr ""
165

  
166
#: vigiboard/templates/about.html:19
167
msgid ""
168
"The TG2 quickstart command produces this basic TG site.  Here's how it "
169
"works."
170
msgstr ""
171

  
172
#: vigiboard/templates/about.html:22
173
msgid "Code my data model"
174
msgstr ""
175

  
176
#: vigiboard/templates/about.html:23
177
msgid ""
178
"When you want a model for storing favorite links or wiki content, \n"
179
"            the"
180
msgstr ""
181

  
182
#: vigiboard/templates/about.html:24
183
msgid "/model"
184
msgstr ""
185

  
186
#: vigiboard/templates/about.html:24
187
msgid "folder in your site is ready to go."
188
msgstr ""
189

  
190
#: vigiboard/templates/about.html:25
191
msgid ""
192
"You can build a dynamic site without any data model at all. There \n"
193
"            still be a default data-model template for you if you didn't "
194
"enable \n"
195
"            authentication and authorization in quickstart. If you "
196
"enabled\n"
197
"            it, you got auth data-model made for you."
198
msgstr ""
199

  
200
#: vigiboard/templates/about.html:31
201
msgid "Design my URL structure"
202
msgstr ""
203

  
204
#: vigiboard/templates/about.html:32
205
msgid "The \""
206
msgstr ""
207

  
208
#: vigiboard/templates/about.html:32
209
msgid "root.py"
210
msgstr ""
211

  
212
#: vigiboard/templates/about.html:32
213
msgid "\" file under the"
214
msgstr ""
215

  
216
#: vigiboard/templates/about.html:33
217
msgid "/controllers"
218
msgstr ""
219

  
220
#: vigiboard/templates/about.html:33
221
msgid ""
222
"folder has your URLs.  When you \n"
223
"            called this url ("
224
msgstr ""
225

  
226
#: vigiboard/templates/about.html:34 vigiboard/templates/about.html:36
227
msgid "about"
228
msgstr ""
229

  
230
#: vigiboard/templates/about.html:34
231
msgid ""
232
"), \n"
233
"            the command went through the RootController class to the"
234
msgstr ""
235

  
236
#: vigiboard/templates/about.html:36
237
msgid "method."
238
msgstr ""
239

  
240
#: vigiboard/templates/about.html:37
241
msgid ""
242
"Those Python methods are responsible to create the dictionary of\n"
243
"             variables that will be used in your web views (template)."
244
msgstr ""
245

  
246
#: vigiboard/templates/about.html:41
247
msgid "Reuse the web page elements"
248
msgstr ""
249

  
250
#: vigiboard/templates/about.html:42
251
msgid ""
252
"A web page viewed by user could be constructed by single or \n"
253
"            several reusable templates under"
254
msgstr ""
255

  
256
#: vigiboard/templates/about.html:43
257
msgid "/templates"
258
msgstr ""
259

  
260
#: vigiboard/templates/about.html:43
261
msgid ""
262
". \n"
263
"            Take 'about' page for example, each reusable templates "
264
"generating \n"
265
"            a part of the page. We'll cover them in the order of where "
266
"they are \n"
267
"            found, listed near the top of the about.html template"
268
msgstr ""
269

  
270
#: vigiboard/templates/about.html:47
271
msgid "header.html"
272
msgstr ""
273

  
274
#: vigiboard/templates/about.html:47
275
msgid ""
276
"- The \n"
277
"            \"header.html\" template contains the HTML code to display "
278
"the \n"
279
"            'header': The blue gradient, TG2 logo, and some site text at "
280
"the \n"
281
"            top of every page it is included on. When the \"about.html\" "
282
"template \n"
283
"            is called, it includes this \"header.html\" template (and the"
284
" others) \n"
285
"            with a"
286
msgstr ""
287

  
288
#: vigiboard/templates/about.html:52
289
msgid "<xi:include />"
290
msgstr ""
291

  
292
#: vigiboard/templates/about.html:52
293
msgid ""
294
"tag, part of \n"
295
"            the Genshi templating system. The \"header.html\" template is"
296
" not a \n"
297
"            completely static HTML -- it also dynamically displays the "
298
"current \n"
299
"            page name with a Genshi template method called \"replace\" "
300
"with the \n"
301
"            code:"
302
msgstr ""
303

  
304
#: vigiboard/templates/about.html:56
305
msgid "<span py:replace=\"page\"/>"
306
msgstr ""
307

  
308
#: vigiboard/templates/about.html:56
309
msgid ""
310
". \n"
311
"            It means replace this"
312
msgstr ""
313

  
314
#: vigiboard/templates/about.html:57
315
msgid "<span />"
316
msgstr ""
317

  
318
#: vigiboard/templates/about.html:57
319
msgid ""
320
"region with the contents found in the variable 'page' that has \n"
321
"            been sent in the dictionary to this \"about.html\" template, "
322
"and is \n"
323
"            available through that namespace for use by this "
324
"\"header.html\" \n"
325
"            template.  That's how it changes in the header depending on "
326
"what \n"
327
"            page you are visiting."
328
msgstr ""
329

  
330
#: vigiboard/templates/about.html:64
331
msgid "sidebars.html"
332
msgstr ""
333

  
334
#: vigiboard/templates/about.html:64
335
msgid ""
336
"- The\n"
337
"             sidebars (navigation areas on the right side of the page) "
338
"are \n"
339
"             generated as two separate"
340
msgstr ""
341

  
342
#: vigiboard/templates/about.html:66 vigiboard/templates/about.html:67
343
msgid "py:def"
344
msgstr ""
345

  
346
#: vigiboard/templates/about.html:66
347
msgid ""
348
"blocks \n"
349
"             in the \"sidebars.html\" template.  The"
350
msgstr ""
351

  
352
#: vigiboard/templates/about.html:67
353
msgid ""
354
"construct is best thought of as a \"macro\" code... a simple way to \n"
355
"             separate and reuse common code snippets.  All it takes to "
356
"include \n"
357
"             these on the \"about.html\" page template is to write"
358
msgstr ""
359

  
360
#: vigiboard/templates/about.html:73
361
msgid "${sidebar_top()}"
362
msgstr ""
363

  
364
#: vigiboard/templates/about.html:75
365
msgid "${sidebar_bottom()}"
366
msgstr ""
367

  
368
#: vigiboard/templates/about.html:77
369
msgid ""
370
"in the page where they are wanted.  CSS styling (in \n"
371
"        \"/public/css/style.css\") floats them off to the right side.  "
372
"You can \n"
373
"        remove a sidebar or add more of them, and the CSS will place them"
374
" one \n"
375
"        atop the other."
376
msgstr ""
377

  
378
#: vigiboard/templates/about.html:81
379
msgid ""
380
"This is, of course, also exactly how the header and footer \n"
381
"            templates are also displayed in their proper places, but "
382
"we'll \n"
383
"            cover that in the \"master.html\" template below."
384
msgstr ""
385

  
386
#: vigiboard/templates/about.html:84
387
msgid ""
388
"Oh, and in sidebar_top we've added a dynamic menu that shows the \n"
389
"            link to this page at the top when you're at the \"index\" "
390
"page, and \n"
391
"            shows a link to the Home (index) page when you're here.  "
392
"Study the \n"
393
"            \"sidebars.html\" template to see how we used"
394
msgstr ""
395

  
396
#: vigiboard/templates/about.html:88
397
msgid "py:choose"
398
msgstr ""
399

  
400
#: vigiboard/templates/about.html:88
401
msgid "for that."
402
msgstr ""
403

  
404
#: vigiboard/templates/about.html:89
405
msgid "footer.html"
406
msgstr ""
407

  
408
#: vigiboard/templates/about.html:89
409
msgid ""
410
"- The \n"
411
"            \"footer.html\" block is simple, but also utilizes a special"
412
" \n"
413
"            \"replace\" method to set the current YEAR in the footer "
414
"copyright \n"
415
"            message. The code is:"
416
msgstr ""
417

  
418
#: vigiboard/templates/about.html:93
419
msgid "<span py:replace=\"now.strftime('%Y')\">"
420
msgstr ""
421

  
422
#: vigiboard/templates/about.html:94
423
msgid ""
424
"and it uses the variable \"now\" that was passed \n"
425
"            in with the dictionary of variables.  But because \"now\" is "
426
"a \n"
427
"            datetime object, we can use the Python"
428
msgstr ""
429

  
430
#: vigiboard/templates/about.html:97
431
msgid "\"strftime()\""
432
msgstr ""
433

  
434
#: vigiboard/templates/about.html:97
435
msgid ""
436
"method with the \"replace\" \n"
437
"            call to say \"Just Display The Year Here\".  Simple, elegant;"
438
" we \n"
439
"            format the date display in the template (the View in the \n"
440
"            Model/View/Controller architecture) rather than formatting it"
441
" in \n"
442
"            the Controller method and sending it to the template as a "
443
"string \n"
444
"            variable."
445
msgstr ""
446

  
447
#: vigiboard/templates/about.html:103
448
msgid "master.html"
449
msgstr ""
450

  
451
#: vigiboard/templates/about.html:103
452
msgid ""
453
"- The \n"
454
"            \"master.html\" template is called last, by design.  The "
455
"\"master.html\" \n"
456
"            template controls the overall design of the page we're "
457
"looking at, \n"
458
"            calling first the \"header\" py:def macro, then the putting "
459
"everything \n"
460
"            from this \"about.html\" template into the \"content\" div, "
461
"and \n"
462
"            then calling the \"footer\" macro at the end.  Thus the "
463
"\"master.html\" \n"
464
"            template provides the overall architecture for each page in "
465
"this \n"
466
"            site."
467
msgstr ""
468

  
469
#: vigiboard/templates/about.html:111
470
msgid ""
471
"But why then shouldn't we call it first?  Isn't it the most \n"
472
"            important?  Perhaps, but that's precisely why we call it "
473
"LAST. \n"
474
"            The \"master.html\" template needs to know where to find "
475
"everything \n"
476
"            else, everything that it will use in py:def macros to build "
477
"the\n"
478
"             page.  So that means we call the other templates first, and "
479
"then \n"
480
"             call \"master.html\"."
481
msgstr ""
482

  
483
#: vigiboard/templates/about.html:117
484
msgid ""
485
"There's more to the \"master.html\" template... study it to see how \n"
486
"           the <title> tags and static JS and CSS files are brought into"
487
" \n"
488
"           the page.  Templating with Genshi is a powerful tool and we've"
489
" only \n"
490
"           scratched the surface.  There are also a few little CSS tricks"
491
" \n"
492
"           hidden in these pages, like the use of a \"clearingdiv\" to "
493
"make \n"
494
"           sure that your footer stays below the sidebars and always "
495
"looks \n"
496
"           right.  That's not TG2 at work, just CSS.  You'll need all "
497
"your \n"
498
"           skills to build a fine web app, but TG2 will make the hard "
499
"parts \n"
500
"           easier so that you can concentrate more on good design and "
501
"content \n"
502
"           rather than struggling with mechanics."
503
msgstr ""
504

  
505
#: vigiboard/templates/about.html:129
506
msgid "Good luck with TurboGears 2!"
507
msgstr ""
508

  
509
#: vigiboard/templates/authentication.html:11
510
msgid "Learning TurboGears 2.0: Quick guide to authentication."
511
msgstr ""
512

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff