radiant-german_language_pack-extension 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ # I18n De
2
+
3
+ German language pack for Radiant 0.9. Translation consists of
4
+ admin UI strings and description of radiant tags.
@@ -0,0 +1,123 @@
1
+ # I think this is the one that should be moved to the extension Rakefile template
2
+
3
+ # In rails 1.2, plugins aren't available in the path until they're loaded.
4
+ # Check to see if the rspec plugin is installed first and require
5
+ # it if it is. If not, use the gem version.
6
+
7
+ # Determine where the RSpec plugin is by loading the boot
8
+ unless defined? RADIANT_ROOT
9
+ ENV["RAILS_ENV"] = "test"
10
+ case
11
+ when ENV["RADIANT_ENV_FILE"]
12
+ require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot"
13
+ when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
14
+ require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot"
15
+ else
16
+ require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot"
17
+ end
18
+ end
19
+
20
+ require 'rake'
21
+ require 'rake/rdoctask'
22
+ require 'rake/testtask'
23
+
24
+ rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib')
25
+ $LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base)
26
+ require 'spec/rake/spectask'
27
+ require 'cucumber'
28
+ require 'cucumber/rake/task'
29
+
30
+ # Cleanup the RADIANT_ROOT constant so specs will load the environment
31
+ Object.send(:remove_const, :RADIANT_ROOT)
32
+
33
+ extension_root = File.expand_path(File.dirname(__FILE__))
34
+
35
+ task :default => :spec
36
+ task :stats => "spec:statsetup"
37
+
38
+ desc "Run all specs in spec directory"
39
+ Spec::Rake::SpecTask.new(:spec) do |t|
40
+ t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
41
+ t.spec_files = FileList['spec/**/*_spec.rb']
42
+ end
43
+
44
+ task :features => 'spec:integration'
45
+
46
+ namespace :spec do
47
+ desc "Run all specs in spec directory with RCov"
48
+ Spec::Rake::SpecTask.new(:rcov) do |t|
49
+ t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
50
+ t.spec_files = FileList['spec/**/*_spec.rb']
51
+ t.rcov = true
52
+ t.rcov_opts = ['--exclude', 'spec', '--rails']
53
+ end
54
+
55
+ desc "Print Specdoc for all specs"
56
+ Spec::Rake::SpecTask.new(:doc) do |t|
57
+ t.spec_opts = ["--format", "specdoc", "--dry-run"]
58
+ t.spec_files = FileList['spec/**/*_spec.rb']
59
+ end
60
+
61
+ [:models, :controllers, :views, :helpers].each do |sub|
62
+ desc "Run the specs under spec/#{sub}"
63
+ Spec::Rake::SpecTask.new(sub) do |t|
64
+ t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
65
+ t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
66
+ end
67
+ end
68
+
69
+ desc "Run the Cucumber features"
70
+ Cucumber::Rake::Task.new(:integration) do |t|
71
+ t.fork = true
72
+ t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')]
73
+ # t.feature_pattern = "#{extension_root}/features/**/*.feature"
74
+ t.profile = "default"
75
+ end
76
+
77
+ # Setup specs for stats
78
+ task :statsetup do
79
+ require 'code_statistics'
80
+ ::STATS_DIRECTORIES << %w(Model\ specs spec/models)
81
+ ::STATS_DIRECTORIES << %w(View\ specs spec/views)
82
+ ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers)
83
+ ::STATS_DIRECTORIES << %w(Helper\ specs spec/views)
84
+ ::CodeStatistics::TEST_TYPES << "Model specs"
85
+ ::CodeStatistics::TEST_TYPES << "View specs"
86
+ ::CodeStatistics::TEST_TYPES << "Controller specs"
87
+ ::CodeStatistics::TEST_TYPES << "Helper specs"
88
+ ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
89
+ end
90
+
91
+ namespace :db do
92
+ namespace :fixtures do
93
+ desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y"
94
+ task :load => :environment do
95
+ require 'active_record/fixtures'
96
+ ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
97
+ (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
98
+ Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*'))
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+
105
+ desc 'Generate documentation for the de extension.'
106
+ Rake::RDocTask.new(:rdoc) do |rdoc|
107
+ rdoc.rdoc_dir = 'rdoc'
108
+ rdoc.title = 'I18nDeExtension'
109
+ rdoc.options << '--line-numbers' << '--inline-source'
110
+ rdoc.rdoc_files.include('README')
111
+ rdoc.rdoc_files.include('lib/**/*.rb')
112
+ end
113
+
114
+ # For extensions that are in transition
115
+ desc 'Test the de extension.'
116
+ Rake::TestTask.new(:test) do |t|
117
+ t.libs << 'lib'
118
+ t.pattern = 'test/**/*_test.rb'
119
+ t.verbose = true
120
+ end
121
+
122
+ # Load any custom rakefiles for extension
123
+ Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f }
@@ -0,0 +1,428 @@
1
+ ---
2
+ de:
3
+ account: 'Konto'
4
+ activerecord:
5
+ errors:
6
+ messages:
7
+ not_a_page: 'muss eine gültige Seite sein'
8
+ not_permitted: 'muss ein erlaubter Wert sein'
9
+ template:
10
+
11
+ full_messages:
12
+ format: "%{attribute} %{message}"
13
+
14
+ models:
15
+ page:
16
+ attributes:
17
+ slug:
18
+ taken: 'Slug schon als Kind dieser Seite in Benutzung' # slug_in_use
19
+ user:
20
+ attributes:
21
+ email:
22
+ invalid: 'Ungültige E-Mail-Adresse' # invalid_email
23
+ login:
24
+ taken: 'Login schon in Benutzung' # login already in use
25
+ password:
26
+ confirmation: 'muss der Bestätigung entsprechen' # password_confirmation
27
+
28
+ add_child: 'Neue Unterseite'
29
+ add_field: 'Neues Feld'
30
+ add_part: 'Neuer Part'
31
+ add_tab: 'fügt Tab ein'
32
+ admin: 'Administrator'
33
+ available_tags: 'Verfügbare Tags'
34
+ available_tags_for: 'Verfügbare Tags für {{name}}'
35
+ body: 'Inhalt'
36
+ breadcrumb: 'Breadcrumb'
37
+ buttons:
38
+ create: '{{name}} erstellen'
39
+ save_and_continue: 'Speichern und weiterbearbeiten'
40
+ save_changes: 'Änderungen speichern'
41
+ cancel: 'Abbrechen'
42
+ change: 'Ändern'
43
+ close: 'Schliessen'
44
+ config:
45
+ admin:
46
+ title: 'Admin-Überschrift'
47
+ defaults:
48
+ locale: 'Standardsprache'
49
+ page:
50
+ fields: 'Seitenfelder'
51
+ filter: 'Seitenfilter'
52
+ parts: 'Seitenteile'
53
+ status: 'Seitenstatus'
54
+ snippet:
55
+ filter: 'Snippetfilter'
56
+ dev:
57
+ host: 'Entwicklungsname'
58
+ local:
59
+ timezone: 'Lokale Zeitzone'
60
+ site:
61
+ host: 'Website-Domain'
62
+ title: 'Website-Titel'
63
+ user:
64
+ allow_password_reset?: 'Passwort zurücksetzbar?'
65
+ content: 'Inhalt'
66
+ content_type: 'Inhalt&#8209;Typ'
67
+ creating_status: 'Erzeuge {{model}}&#8230;'
68
+ date:
69
+ abbr_day_names:
70
+ - So
71
+ - Mo
72
+ - Di
73
+ - Mi
74
+ - Do
75
+ - Fr
76
+ - Sa
77
+ abbr_month_names:
78
+ - ~
79
+ - Jan
80
+ - Feb
81
+ - Mär
82
+ - Apr
83
+ - Mai
84
+ - Jun
85
+ - Jul
86
+ - Aug
87
+ - Sep
88
+ - Okt
89
+ - Nov
90
+ - Dez
91
+ day_names:
92
+ - Sonntag
93
+ - Montag
94
+ - Dienstag
95
+ - Mittwoch
96
+ - Donnerstag
97
+ - Freitag
98
+ - Samstag
99
+ formats:
100
+ default: '%d.%m.%Y'
101
+ long: '%e. %B %Y'
102
+ only_day: '%e'
103
+ short: '%e. %b'
104
+ month_names:
105
+ - ~
106
+ - Januar
107
+ - Februar
108
+ - März
109
+ - April
110
+ - Mai
111
+ - Juni
112
+ - Juli
113
+ - August
114
+ - September
115
+ - Oktober
116
+ - November
117
+ - Dezember
118
+ order:
119
+ - :day
120
+ - :month
121
+ - :year
122
+
123
+ datetime:
124
+ distance_in_words:
125
+ half_a_minute: 'eine halbe Minute'
126
+ less_than_x_seconds:
127
+ one: 'weniger als eine Sekunde'
128
+ other: 'weniger als %{count} Sekunden'
129
+ x_seconds:
130
+ one: 'eine Sekunde'
131
+ other: '%{count} Sekunden'
132
+ less_than_x_minutes:
133
+ one: 'weniger als eine Minute'
134
+ other: 'weniger als %{count} Minuten'
135
+ x_minutes:
136
+ one: 'eine Minute'
137
+ other: '%{count} Minuten'
138
+ about_x_hours:
139
+ one: 'etwa eine Stunde'
140
+ other: 'etwa %{count} Stunden'
141
+ x_days:
142
+ one: 'ein Tag'
143
+ other: '%{count} Tage'
144
+ about_x_months:
145
+ one: 'etwa ein Monat'
146
+ other: 'etwa %{count} Monate'
147
+ x_months:
148
+ one: 'ein Monat'
149
+ other: '%{count} Monate'
150
+ almost_x_years:
151
+ one: 'fast ein Jahr'
152
+ other: 'fast %{count} Jahre'
153
+ about_x_years:
154
+ one: 'etwa ein Jahr'
155
+ other: 'etwa %{count} Jahre'
156
+ over_x_years:
157
+ one: 'mehr als ein Jahr'
158
+ other: 'mehr als %{count} Jahre'
159
+ prompts:
160
+ second: "Sekunden"
161
+ minute: "Minuten"
162
+ hour: "Stunden"
163
+ day: "Tag"
164
+ month: "Monat"
165
+ year: "Jahr"
166
+
167
+ delete_layout: 'Layout löschen'
168
+ delete_pages: 'Lösche {{pages}}'
169
+ delete_snippet: 'Snippet löschen'
170
+ delete_user: 'Benutzer löschen'
171
+ description: 'Beschreibung'
172
+ design: 'Design'
173
+ designer: 'Designer'
174
+ draft: 'Entwurf'
175
+ edit: 'Bearbeiten'
176
+ edit_configuration: 'Konfiguration bearbeiten'
177
+ edit_layout: 'Layout bearbeiten'
178
+ edit_page: 'Seite bearbeiten'
179
+ edit_preferences: 'Voreinstellungen bearbeiten'
180
+ edit_settings: 'Einstellungen bearbeiten'
181
+ edit_snippet: 'Snippet bearbeiten'
182
+ edit_user: 'Benutzer bearbeiten'
183
+ email_address: 'E-Mail Adresse'
184
+ errors:
185
+ format: "%{attribute} %{message}"
186
+
187
+ messages: &errors_messages
188
+ inclusion: "ist kein gültiger Wert"
189
+ exclusion: "ist nicht verfügbar"
190
+ invalid: "ist nicht gültig"
191
+ confirmation: "stimmt nicht mit der Bestätigung überein"
192
+ accepted: "muss akzeptiert werden"
193
+ empty: "muss ausgefüllt werden"
194
+ blank: "muss ausgefüllt werden"
195
+ too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
196
+ too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
197
+ wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
198
+ not_a_number: "ist keine Zahl"
199
+ greater_than: "muss größer als %{count} sein"
200
+ greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
201
+ equal_to: "muss genau %{count} sein"
202
+ less_than: "muss kleiner als %{count} sein"
203
+ less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
204
+ odd: "muss ungerade sein"
205
+ even: "muss gerade sein"
206
+ not_an_integer: "muss ganzzahlig sein"
207
+ taken: "ist bereits vergeben"
208
+ record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: %{errors}"
209
+ template: &errors_template
210
+ header:
211
+ one: "Konnte %{model} nicht speichern: ein Fehler."
212
+ other: "Konnte %{model} nicht speichern: %{count} Fehler."
213
+ body: "Bitte überprüfen Sie die folgenden Felder:"
214
+
215
+ extension: 'Erweiterung'
216
+ extensions: 'Erweiterungen'
217
+ filter: 'Filter'
218
+ helpers:
219
+ select:
220
+ prompt: "Bitte wählen"
221
+
222
+ submit:
223
+ create: '%{model} erstellen'
224
+ update: '%{model} aktualisieren'
225
+ submit: '%{model} speichern'
226
+
227
+ hidden: 'Versteckt'
228
+ hide: 'Verstecken'
229
+ keywords: 'Schlüsselworte'
230
+ language: 'Sprache'
231
+ layout: 'Layout'
232
+ layouts: 'Layouts'
233
+ log_out: 'Abmelden'
234
+ logged_in_as: 'Angemeldet als'
235
+ login: 'Benutzername'
236
+ modify: 'Bearbeiten'
237
+ more: 'Mehr'
238
+ more_info: 'Mehr Information'
239
+ name: 'Name'
240
+ new_homepage: 'Neue Startseite'
241
+ new_layout: 'Neues Layout'
242
+ new_page: 'Neue Seite'
243
+ new_password: 'Neues Passwort'
244
+ new_snippet: 'Neues Snippet'
245
+ new_user: 'Neuer Benutzer'
246
+ 'no': 'Nein' #yes/no/true/false are treated as booleans unless Strings, see http://www.yaml.org/refcard.html
247
+ no_layouts: 'Keine Layouts'
248
+ no_pages: 'Keine Seiten'
249
+ no_snippets: 'Keine Snippets'
250
+ normal_page: 'Normale Seite'
251
+ notes: 'Notizen'
252
+ number:
253
+ format:
254
+ precision: 2
255
+ separator: ','
256
+ delimiter: '.'
257
+ significant: false
258
+ strip_insignificant_zeros: false
259
+ currency:
260
+ format:
261
+ unit: '€'
262
+ format: '%n %u'
263
+ separator: ","
264
+ delimiter: "."
265
+ precision: 2
266
+ significant: false
267
+ strip_insignificant_zeros: false
268
+ percentage:
269
+ format:
270
+ delimiter: ""
271
+ precision:
272
+ format:
273
+ delimiter: ""
274
+ human:
275
+ format:
276
+ delimiter: ""
277
+ precision: 1
278
+ significant: true
279
+ strip_insignificant_zeros: true
280
+ storage_units:
281
+ # Storage units output formatting.
282
+ # %u is the storage unit, %n is the number (default: 2 MB)
283
+ format: "%n %u"
284
+ units:
285
+ byte:
286
+ one: "Byte"
287
+ other: "Bytes"
288
+ kb: "KB"
289
+ mb: "MB"
290
+ gb: "GB"
291
+ tb: "TB"
292
+ decimal_units:
293
+ format: "%n %u"
294
+ units:
295
+ unit: ""
296
+ thousand: Tausend
297
+ million: Millionen
298
+ billion:
299
+ one: Milliarde
300
+ other: Milliarden
301
+ trillion: Billionen
302
+ quadrillion:
303
+ one: Billiarde
304
+ other: Billiarden
305
+
306
+ optional: 'Optional'
307
+ or: 'oder'
308
+ page: 'Seite'
309
+ page_hierarchy: 'Seitenhierarchie der aktuellen Seite'
310
+ page_page: 'Seitenpart'
311
+ page_title: 'Seitentitel'
312
+ page_type: 'Seitentyp'
313
+ pages: 'Seiten'
314
+ pages_controller:
315
+ removed_many: 'Die Seiten wurden erfolgreich gelöscht.'
316
+ removed_one: 'Die Seite wurde erfolgreich gelöscht.'
317
+ saved: 'Ihre Seite wurde gespeichert.'
318
+ password: 'Passwort'
319
+ password_confirmation: 'Neues Passwort bestätigen'
320
+ personal: 'Persönlich'
321
+ personal_preferences: 'Persönliche Einstellungen'
322
+ please_login: 'Bitte Anmelden'
323
+ powered_by: 'Powered by'
324
+ preferences: 'Einstellungen'
325
+ preferences_controller:
326
+ error_updating: 'Beim Aktualisieren Ihrer Einstellungen ist ein Fehler aufgetreten.'
327
+ updated: 'Ihre Einstellungen wurden aktualisiert.'
328
+ preview: 'Vorschau'
329
+ published: 'Veröffentlicht'
330
+ published_at: 'Veröffentlicht am'
331
+ published_on: 'Veröffentlicht am'
332
+ reference: 'Referenz'
333
+ remember_me: 'Merken'
334
+ remember_me_in_this_browser: 'Anmeldung in diesem Browser merken.'
335
+ remove: 'Löschen'
336
+ remove_field: 'Feld löschen'
337
+ remove_layout: 'Layout löschen'
338
+ remove_page: 'Seite löschen'
339
+ remove_pages: '{{pages}} löschen'
340
+ remove_snippet: 'Snippet löschen'
341
+ remove_tab: 'Tab löschen'
342
+ remove_user: 'Benutzer löschen'
343
+ required: 'erforderlich'
344
+ resource_controller:
345
+ not_found: '{{humanized_model_name}} wurde nicht gefunden.'
346
+ removed: '{{humanized_model_name}} wurde gelöscht.'
347
+ saved: '{{humanized_model_name}} wurde gespeichert.'
348
+ update_conflict: 'Seit dem letzten Laden wurde {{humanized_model_name}} geändert. Änderungen können nicht ohne Verlust gespeichert werden.'
349
+ validation_errors: 'Beim Validieren dieses Formulars sind Fehler aufgetreten. Bitte überprüfen Sie die Eingaben und korrigieren Sie die Fehler.'
350
+ reviewed: 'Überprüft'
351
+ roles: 'Rollen'
352
+ saving_changes: Änderungen werden gespeichert
353
+ saving_preferences: Einstellungen werden gespeichert
354
+ scheduled: Geplant
355
+ search_tags: 'Tags durchsuchen:'
356
+ select:
357
+ default: '<Standardwert>'
358
+ inherit: '<Vererbt>'
359
+ none: '<Keine>'
360
+ normal: '<Normal>'
361
+ settings: 'Einstellungen'
362
+ show_all: 'Alle zeigen'
363
+ slug: 'Slug'
364
+ snippet: 'Snippet'
365
+ snippets: 'Snippets'
366
+ status: 'Status'
367
+ support:
368
+ array:
369
+ words_connector: ", "
370
+ two_words_connector: " und "
371
+ last_word_connector: " und "
372
+ select:
373
+ prompt: "Bitte wählen:"
374
+
375
+ # Warnings and info text:
376
+ testing: Testing
377
+ text:
378
+ layouts:
379
+ remove_warning: "Sie sind sicher, das folgende Layout <strong class='warning'>dauerhaft entfernen</strong> zu wollen?"
380
+ pages:
381
+ remove_warning: "Sie sind sicher, folgende {{pages}} <strong class='warning'>dauerhaft entfernen</strong> zu wollen?"
382
+ snippets:
383
+ remove_warning: "Sind Sie sich sicher, dass Sie das folgende Snippet <strong class='warning'>dauerhaft entfernen</strong> wollen?"
384
+ users:
385
+ remove_warning: "Sind Sie sich sicher, dass Sie den Benutzer <strong class='warning'>dauerhaft entfernen</strong> möchten?"
386
+ this_file_language: 'Deutsch'
387
+ time:
388
+ am: "vormittags"
389
+ formats:
390
+ datetime:
391
+ formats:
392
+ default: '%Y-%m-%dT%H:%M:%S%Z'
393
+ default: "%A, %d. %B %Y, %H:%M Uhr"
394
+ long: "%A, %d. %B %Y, %H:%M Uhr"
395
+ only_second: '%S'
396
+ short: "%d. %B, %H:%M Uhr"
397
+ time: '%H:%M Uhr'
398
+ timestamp: '%H:%M am %d. %B, %Y'
399
+ pm: "nachmittags"
400
+ timestamp:
401
+ at: 'um'
402
+ by: 'von'
403
+ last_updated: 'Zuletzt geändert'
404
+ type: 'Typ'
405
+ units:
406
+ GB: 'GB'
407
+ KB: 'KB'
408
+ MB: 'MB'
409
+ days: 'Tage'
410
+ hours: 'Stunden'
411
+ minutes: 'Minuten'
412
+ months: 'Monate'
413
+ seconds: 'Sekunden'
414
+ weeks: 'Wochen'
415
+ user: 'Benutzer'
416
+ username: 'Benutzername'
417
+ username_or_email: 'Benutzername oder Email-Adresse'
418
+ users: 'Benutzer'
419
+ users_controller:
420
+ cannot_delete_self: 'Sie können sich nicht selbst löschen.'
421
+ version: 'Version'
422
+ view_site: 'Website'
423
+ warning: 'Warnung'
424
+ website: 'Website'
425
+ welcome_controller:
426
+ invalid_user: 'Ungültiger Benutzername oder Passwort.'
427
+ logged_out: 'Sie sind jetzt ausgeloggt.'
428
+ 'yes': 'Ja' #yes/no/true/false are treated as booleans unless Strings, see http://www.yaml.org/refcard.html
@@ -0,0 +1,624 @@
1
+ ---
2
+ de:
3
+ desc:
4
+ author:
5
+ Autor der aktuellen Seite.
6
+
7
+ breadcrumb: |
8
+ @breadcrumb@-Attribut der aktuellen Seite.
9
+
10
+ breadcrumbs:
11
+ Gibt eine komplette Breadcrumb-Navigation bis zur aktuellen Seite aus. Der Separator
12
+ spezifiziert das HTML-Fragment, das zwischen die einzelnen Breadcrumbs eingefügt wird.
13
+ Der Default dafür ist @>@. Das bool'sche Attribut 'nolinks' kann verwendet werden, um die
14
+ Breadcrumbs als reinen Text (ohne Links) anzuzeigen. Das kann zum Generieren des
15
+ Title-Tags verwendet werden.
16
+
17
+ *Verwendung&#58;*
18
+
19
+ <pre><code><r:breadcrumbs [separator="separator_string"] [nolinks="true"] /></code></pre>
20
+
21
+ children-count:
22
+ Gibt die Gesamtzahl der Kinder dieser Seite aus.
23
+
24
+ children-each:
25
+ Gibt alle Kinder aus. Innerhalb dieses Tags werden alle Seitenattribut-Tags
26
+ auf die aktuelle Kind-Seite gemappt.
27
+
28
+ Mit @paginated="true"@ wird eine paginierte Liste ausgegeben. Die @will_paginate@-Optionen
29
+ können ebenfalls angegeben werden, einschließlich
30
+ @per_page@, @previous_label@, @next_label@, @separator@, @inner_window@ und @outer_window@.
31
+
32
+ *Verwendung&#58;*
33
+
34
+ <pre><code><r:children:each [offset="number"] [limit="number"]
35
+ [by="published_at|updated_at|created_at|slug|title|keywords|des</code><code>cription"]
36
+ [order="asc|des</code><code>c"] [status="draft|reviewed|published|hidden|all"]
37
+ [paginated="true"] [per_page="number"]>
38
+ ...
39
+ </r:children:each>
40
+ </code></pre>
41
+
42
+
43
+ children-each-child:
44
+ Seiten-Attribut-Tags innerhalb dieses Tags beziehen sich auf das aktuelle Kind. Das ist
45
+ manchmal nützlich, wenn man sich innerhalb eines anderen Tags befindet (z.B. &lt;r&#58;find&gt;)
46
+ und auf das aktuelle Kind zurückverweisen will.
47
+
48
+ *Verwendung&#58;*
49
+
50
+ <pre><code><r:children:each>
51
+ <r:child>...</r:child>
52
+ </r:children:each>
53
+ </code></pre>
54
+
55
+ children-each-header:
56
+ Gibt den Tag-Inhalt nur aus, wenn er nicht mit dem vorherigen Header übereinstimmt.
57
+ Sehr nützlich zum Anzeigen des Date-Headers für eine Liste von Kind-Seiten.
58
+
59
+ Wenn mehrere Header-Blocks ausgegeben werden sollen, kann das @name@-Attribut
60
+ für den Namen des Headers verwendet werden. Ein benamter Header wird nicht ausgegeben,
61
+ bis ein anderer Header mit dem gleichen Namen einen anderen Inhalt hat.
62
+
63
+ Mit dem @restart@-Attribut können andere Header zum Neustart verwendet werden,
64
+ wenn sich der jetzige Header ändert. Dazu müssen die Namen der anderen Header
65
+ in einer mit Semikolon getrennten Liste spezifiziert werden.
66
+
67
+ *Verwendung&#58;*
68
+
69
+ <pre><code><r:children:each>
70
+ <r:header [name="header_name"] [restart="name1[;name2;...]"]>
71
+ ...
72
+ </r:header>
73
+ </r:children:each>
74
+ </code></pre>
75
+
76
+ children-each-if_first:
77
+ Gibt den Tag-Inhalt nur aus, wenn die aktuelle Seite das erste Kind im Kontext
78
+ eines children&#58;each-Tag ist.
79
+
80
+ *Verwendung&#58;*
81
+
82
+ <pre><code><r:children:each>
83
+ <r:if_first >
84
+ ...
85
+ </r:if_first>
86
+ </r:children:each>
87
+ </code></pre>
88
+
89
+
90
+ children-each-if_last:
91
+ Gibt den Tag-Inhalt nur aus, wenn die aktuelle Seite das letzte Kind im Kontext
92
+ eines children&#58;each-Tag ist.
93
+
94
+ *Verwendung&#58;*
95
+
96
+ <pre><code><r:children:each>
97
+ <r:if_last >
98
+ ...
99
+ </r:if_last>
100
+ </r:children:each>
101
+ </code></pre>
102
+
103
+
104
+ children-each-unless_first:
105
+ Gibt den Tag-Inhalt aus, bis die aktuelle Seite das erste Kind im Kontext
106
+ eines children&#58;each-Tag ist.
107
+
108
+ *Verwendung&#58;*
109
+
110
+ <pre><code><r:children:each>
111
+ <r:unless_first >
112
+ ...
113
+ </r:unless_first>
114
+ </r:children:each>
115
+ </code></pre>
116
+
117
+
118
+ children-each-unless_last:
119
+ Gibt den Tag-Inhalt aus, bis die aktuelle Seite das letzte Kind im Kontext
120
+ eines children&#58;each-Tag ist.
121
+
122
+ *Verwendung&#58;*
123
+
124
+ <pre><code><r:children:each>
125
+ <r:unless_last >
126
+ ...
127
+ </r:unless_last>
128
+ </r:children:each>
129
+ </code></pre>
130
+
131
+
132
+ children-first:
133
+ Gibt das erste Kind aus. Innerhalb dieses Tags werden alle Seitenattribut-Tags
134
+ auf die erste Kind-Seite gemappt. Benutzt die selben Sortieroptionen wie
135
+ @<r:children:each>@.
136
+
137
+ *Verwendung&#58;*
138
+
139
+ <pre><code><r:children:first>...</r:children:first></code></pre>
140
+
141
+ children-last:
142
+ Gibt das letzte Kind aus. Innerhalb dieses Tags werden alle Seitenattribut-Tags
143
+ auf die erste Kind-Seite gemappt. Benutzt die selben Sortieroptionen wie
144
+ @<r:children:each>@.
145
+
146
+ *Verwendung&#58;*
147
+
148
+ <pre><code><r:children:last>...</r:children:last></code></pre>
149
+
150
+ children:
151
+ Ermöglicht Zugriff auf alle Kinder der Seite.
152
+
153
+ *Verwendung&#58;*
154
+
155
+ <pre><code><r:children>...</r:children></code></pre>
156
+
157
+ comment:
158
+ Der Inhalt innerhalb eines Kommentar-Tags wird nicht ausgegeben.
159
+
160
+ *Verwendung&#58;*
161
+
162
+ <pre><code><r:comment>...</r:comment></code></pre>
163
+
164
+ content:
165
+ Gibt den Hauptinhalt einer Seite aus. Mit dem @part@-Attribut kann ein spezifischer
166
+ Page-Part ausgewählt werden. Default für das @part@ Attribut ist 'body'
167
+ genommen. Das @inherit@-Attribut legt fest, daß wenn eine Seite keinen Content-Part
168
+ mit diesem Namen besitzt, das Tag den entprechenden Content-Part der Eltern-Seite
169
+ ausgibt. Der Default für @inherit@ ist 'false'. Das @contextual@-Attribut wird
170
+ benutzt, um die Auswertung des Parts einer vererbten Seite im Kontext der
171
+ Kind-Seite zu erzwingen. Der Default für @contextual@ ist 'true'.
172
+
173
+ *Verwendung&#58;*
174
+
175
+ <pre><code><r:content [part="part_name"] [inherit="true|false"] [contextual="true|false"] /></code></pre>
176
+
177
+ cycle:
178
+ Gibt einen der übergebenen Werte basierend auf einem globalen Zyklus-Zähler aus. Das
179
+ @reset@-Attribut setzt den Zähler auf den Anfang zurück. Mit dem @name@-Attribut
180
+ können mehrere Zyklen benutzt werden. Der Default dafür ist 'cycle'.
181
+
182
+ *Verwendung&#58;*
183
+
184
+ <pre><code><r:cycle values="first, second, third" [reset="true|false"] [name="cycle"] /></code></pre>
185
+
186
+ date:
187
+ Gibt das Datum der aktuellen Seite aus (als Default wird das Anlege- oder Publikations-Datum
188
+ genommen). Das @format@-Attribut benutzt die Format-Codes der Ruby-Funktion @strftime@. Als
189
+ Default dient '&#37;A, &#37;B &#37;d, &#37;Y'. Das @for@-Attribut bestimmt das Datum,
190
+ das ausgegeben wird. Die gültigen Optionen sind @published_at@, @created_at@, @updated_at@, und @now@.
191
+ @now@ gibt das (von der Seite unabhängige) aktuelle Datum/Zeit aus.
192
+
193
+ *Verwendung&#58;*
194
+
195
+ <pre><r:date [format="%A, %B % d, %Y"] [for="published_at"]/></pre>
196
+
197
+ escape_html:
198
+ Escaped spitze Klammern, damit sie als HTML ausgegeben werden können.
199
+
200
+ *Verwendung&#58;*
201
+
202
+ <pre><code><r:escape_html>...</r:escape_html></code></pre>
203
+
204
+ find:
205
+ Innerhalb dieses Tags beziehen sich alle seitenabhängigen Tags auf die Seite, die
206
+ das @url@-Attribut bezeichnet. @url@s können relative oder absolute Pfade sein.
207
+
208
+ *Verwendung&#58;*
209
+
210
+ <pre><code><r:find url="value_to_find">...</r:find></code></pre>
211
+
212
+ gravatar:
213
+ Gibt den Gravatar des Seitenautors aus.
214
+
215
+ *Verwendung&#58;*
216
+
217
+ <pre><code> <r:gravatar /></code></pre>
218
+
219
+ Oder
220
+
221
+ <pre><code> <r:gravatar [name="User Name"] [rating="G | PG | R | X"] [size="32px"] /> </code></pre>
222
+
223
+
224
+ if_ancestor_or_self:
225
+ Gibt die enthaltenen Elemente aus, wenn der aktuelle Seitenkontext entweder die tatsächliche Seite
226
+ oder eine der Elternseiten ist.
227
+
228
+ Wird typischerweise innerhalb eines anderen Tags wie (&lt;r&#58;children&#58;each&gt;) verwendet,
229
+ um Markup auszugeben, wenn das Kind-Element von der aktuellen Seite abstammt.
230
+
231
+ *Verwendung&#58;*
232
+
233
+ <pre><code><r:if_ancestor_or_self>...</r:if_ancestor_or_self></code></pre>
234
+
235
+ if_children:
236
+ Gibt die enthaltenen Elemente nur aus, wenn der Seitenkontext ein oder mehrere Kind-Seiten
237
+ hat. Das @status@-Attribut schränkt die gefundenen Kind-Seiten auf den angegebenen Status
238
+ ein. Default dafür ist @published@. Mit @status="all"@ werden alle nicht-virtuellen Kind-Seiten
239
+ unabhängig vom Status gefunden.
240
+
241
+ *Verwendung&#58;*
242
+
243
+ <pre><code><r:if_children [status="published"]>...</r:if_children></code></pre>
244
+
245
+ if_content:
246
+ Gibt die enthaltenen Elemente nur aus, wenn alle angegebenen Parts auf der Seite
247
+ existieren. Default ist @body@, es können aber auch mehrere Parts als durch Kommas getrennte
248
+ Liste angegeben werden. Wird das optionale @inherit@-Attribut auf @true@ gesetzt,
249
+ werden Kinder unabhängig von jedem Part gefunden. Default dafür ist @false@.
250
+
251
+ Wird mehr als ein Part ausgegeben, kann das @find@-Attribut auf den Wert @any@ gesetzt
252
+ werden, damit die enthaltenen Elemente ausgegeben werden, wenn irgendeiner der angegebenen
253
+ Parts gefunden werden. Default für dieses Attribut ist @all@.
254
+
255
+ *Verwendung&#58;*
256
+
257
+ <pre><code><r:if_content [part="part_name, other_part"] [inherit="true"] [find="any"]>...</r:if_content></code></pre>
258
+
259
+ if_dev:
260
+ Gibt die enthaltenen Elemente nur aus, wenn Radiant gerade im development-Modus läuft.
261
+
262
+ *Verwendung&#58;*
263
+
264
+ <pre><code><r:if_dev>...</r:if_dev></code></pre>
265
+
266
+ if_parent:
267
+ Gibt die enthaltenen Elemente nur aus, wenn die aktuelle Seite Eltern hat, d.h. es handelt
268
+ sich nicht um die Startseite.
269
+
270
+ *Verwendung&#58;*
271
+
272
+ <pre><code><r:if_parent>...</r:if_parent></code></pre>
273
+
274
+ if_self:
275
+ Gibt die enthaltenen Elemente nur aus, falls der aktuelle Seitenkontext auch
276
+ die aktuelle Seite ist.
277
+
278
+ Wird typischerweise innerhalb eines anderen Tags (wie &lt;r&#58;children&#58;each&gt;)
279
+ benutzt, um zusätzlichen Markup auszugeben, falls das Kind-Elemente die aktuelle Seite ist.
280
+
281
+ *Verwendung&#58;*
282
+
283
+ <pre><code><r:if_self>...</r:if_self></code></pre>
284
+
285
+ if_url:
286
+ Gibt die enthaltenen Elemente nur aus, falls die Seiten-URL den im @matches@ angegebenen
287
+ regulären Ausdruck matcht. Ist @ignore_case@ auf 'false' gesetzt wird dabei Groß-/Kleinschreibung
288
+ beachtet. Default für @ignore_case@ ist 'true'.
289
+
290
+ *Verwendung&#58;*
291
+
292
+ <pre><code><r:if_url matches="regexp" [ignore_case="true|false"]>...</r:if_url></code></pre>
293
+
294
+ link:
295
+ Gibt einen Link auf die Seite aus. Als Einzel-Tag wird der Seitentitel als
296
+ Link-Name benutzt. Als Doppel-Tag wird der Text zwischen den beiden Tags als
297
+ Link-Name genommen. Das link-Tag reicht alle Attribute an das HTML-@a@-Tag
298
+ weiter. Das ist nützlich, um Attribute wie @class@ oder @id@ weiterzureichen.
299
+ Falls das @anchor@-Attribut and das Tag weitergereicht wird, hängt es ein
300
+ Pound-Zeichen (<code>#</code>) gefolgt vom Wert des Attributs des HTML-@a@-Tag
301
+ @href@-Attributs. Dadurch wird ein HTML-Anchor erzeugt.
302
+
303
+ *Verwendung&#58;*
304
+
305
+ <pre><code><r:link [anchor="name"] [other attributes...] /></code></pre>
306
+
307
+ oder
308
+
309
+ <pre><code><r:link [anchor="name"] [other attributes...]>link text here</r:link></code></pre>
310
+
311
+ markdown:
312
+ Der Inhalt wird mit dem Markdown-Filter gefiltert.
313
+
314
+ *Verwendung&#58;*
315
+
316
+ <pre><code><r:markdown>** bold text **</r:markdown></code></pre>
317
+
318
+ erzeugt
319
+
320
+ <pre><code><strong> bold text </strong></code></pre>
321
+
322
+ meta-description:
323
+ Gibt das Seitenbeschreibungsfeld als Meta-Tag aus, solange 'tag'
324
+ auf 'false' gesetzt ist.
325
+
326
+ *Verwendung&#58;*
327
+
328
+ <pre><code> <r:meta:des</code><code>cription [tag="false"] /> </code></pre>
329
+
330
+ meta-keywords:
331
+ Gibt die Keywords der Seite als Meta-Tag aus, solange 'tag'
332
+ auf 'false' gesetzt ist.
333
+
334
+ *Verwendung&#58;*
335
+
336
+ <pre><code> <r:meta:keywords [tag="false"] /> </code></pre>
337
+
338
+ meta:
339
+ Der Namensraum des 'meta'-Attributs. Falls als Einzeltag genutzt, werden sowohl
340
+ Beschreibungs- und Keyword-Felder als &lt;meta /&gt;-Tags ausgegeben, solange
341
+ das Attribut 'tag' auf 'false' gesetzt ist.
342
+
343
+ *Verwendung&#58;*
344
+
345
+ <pre><code> <r:meta [tag="false"] />
346
+ <r:meta>
347
+ <r:des</code><code>cription [tag="false"] />
348
+ <r:keywords [tag="false"] />
349
+ </r:meta>
350
+ </code></pre>
351
+
352
+ navigation-if_first:
353
+ Gibt die enthaltenen Elemente aus, falls das Element das erste Element in der
354
+ Navigationsliste ist.
355
+
356
+ *Verwendung&#58;*
357
+
358
+ <pre><code><r:normal><r:if_first>...</r:if_first></r:normal></code></pre>
359
+
360
+ navigation-if_last:
361
+ Gibt die enthaltenen Elemente aus, falls das Element das letzte Element in der
362
+ Navigationsliste ist.
363
+
364
+ *Verwendung&#58;*
365
+
366
+ <pre><code><r:normal><r:if_last>...</r:if_last></r:normal></code></pre>
367
+
368
+ navigation-unless_first:
369
+ Gibt die enthaltenen Elemente aus, falls das Element nicht das erste Element in der
370
+ Navigationsliste ist.
371
+
372
+ *Verwendung&#58;*
373
+
374
+ <pre><code><r:normal><r:unless_first>...</r:unless_first></r:normal></code></pre>
375
+
376
+ navigation-unless_last:
377
+ Gibt die enthaltenen Elemente aus, falls das Element nicht das letzte Element in der
378
+ Navigationsliste ist.
379
+
380
+ *Verwendung&#58;*
381
+
382
+ <pre><code><r:normal><r:unless_last>...</r:unless_last></r:normal></code></pre>
383
+
384
+ navigation: |
385
+ Gibt eine Liste von Links (spezifiziert im @url@-Attribut) anhand der folgenden
386
+ drei Stati aus&#58;
387
+
388
+ * @normal@ spezifiziert den normalen Link-Status
389
+
390
+ * @here@ spezifiziert den Link-Status, falls die URL die aktuelle Seiten-URL matcht
391
+
392
+ * @selected@ spezifiziert den Link-Status, wenn die aktuelle Seite ein Kind der
393
+ spezifizierten URL ist
394
+
395
+ # @if_last@ gibt den Inhalt innerhalb eines @normal@, @here@ or
396
+ @selected@ Tags aus, falls das Element das letzte Navigationselement ist.
397
+
398
+ # @if_first@ gibt den Inhalt innerhalb eines @normal@, @here@ or
399
+ @selected@ Tags aus, falls das Element das erste Navigationselement ist.
400
+
401
+ Das @between@-Tag legt fest, was zwischen den Links ausgegeben wird.
402
+
403
+ *Verwendung&#58;*
404
+
405
+ <pre>
406
+ <code>
407
+ <r:navigation urls="[Title</code>:<code> url | Title</code>:<code> url | ...]">
408
+ <r:normal><a href="<r:url />"><r:title /></a></r:normal>
409
+ <r:here><strong><r:title /></strong></r:here>
410
+ <r:selected><strong><a href="<r:url />"><r:title /></a></strong></r:selected>
411
+ <r:between> | </r:between>
412
+ </r:navigation>
413
+ </code>
414
+ </pre>
415
+
416
+
417
+
418
+ page:
419
+ Legt fest, daß Tags, die auf Seitenattribute verweisen, sich auf die aktuelle
420
+ Seite beziehen.
421
+
422
+ *Verwendung&#58;*
423
+
424
+ <pre><code><r:page>...</r:page></code></pre>
425
+
426
+ pagination:
427
+ Dieses Tag wird normalerweise nicht direkt aufgerufen. Mit dem Attribut @pagination="true"@
428
+ wird eine Liste beim Anzeigen automatisch paginiert.
429
+
430
+ *Verwendung&#58;*
431
+
432
+ <pre><code>
433
+ <r:children:each paginated="true" per_page="50">
434
+ <r:child>...</r:child>
435
+ </r:children:each>
436
+ </code></pre>
437
+
438
+ parent:
439
+ Seitenattribut-Tags innerhalb dieses Tags verweisen auf die Elternseite der
440
+ aktuellen Seite.
441
+
442
+ *Verwendung&#58;*
443
+
444
+ <pre><code><r:parent>...</r:parent></code></pre>
445
+
446
+ random:
447
+ Gibt zufällig eine der im @option@-Tag spezifizierten Optionen aus.
448
+
449
+ *Verwendung&#58;*
450
+
451
+ <pre><code><r:random>
452
+ <r:option>...</r:option>
453
+ <r:option>...</r:option>
454
+ ...
455
+ <r:random>
456
+ </code></pre>
457
+
458
+ rfc1123_date:
459
+ Das Datum wird im RFC1123-Format ausgegeben (Ideal für RSS-Feeds).
460
+
461
+ *Verwendung&#58;*
462
+
463
+ <pre><code><r:rfc1123_date /></code></pre>
464
+
465
+ slug:
466
+ Gibt das @slug@-Attribut der aktuellen Seite aus.
467
+
468
+ smarty_pants:
469
+ Inhalt wir mit dem Smarty-Pants-Filter gefiltert.
470
+
471
+ *Verwendung&#58;*
472
+
473
+ <pre><code><r:smarty_pants>"A revolutionary quotation."</r:smarty_pants></code></pre>
474
+
475
+ gibt folgendes aus&#58;
476
+
477
+ <pre><code> </code>&#8220;<code>A revolutionary quotation.</code>&#8221;<code> </code></pre>
478
+
479
+ snippet:
480
+ Gibt das im @name@-Attribut angegebene Snippet im Seitenkontext aus.
481
+
482
+ *Verwendung&#58;*
483
+
484
+ <pre><code><r:snippet name="snippet_name" /></code></pre>
485
+
486
+ Falls als Doppel-Tag benutzt, kann der Teil innerhalb der beiden Tags
487
+ im Snippet selbst benutzt werden. Im Falle von @<r:yield/>@ wird er
488
+ ersetzt.
489
+
490
+ *Verwendung&#58;*
491
+
492
+ <pre><code><r:snippet name="snippet_name">Lorem ipsum dolor...</r:snippet></code></pre>
493
+
494
+ status:
495
+ gibt den Status der Seite als String aus. Das optionale Attribut 'downcase'
496
+ gibt den Status in Kleinbuchstaben aus.
497
+
498
+ *Verwendung&#58;*
499
+
500
+ <pre><code><r:status [downcase='true'] /></code></pre>
501
+
502
+ textile:
503
+ Inhalt wir mit dem Textile-Filter gefiltert.
504
+
505
+ *Verwendung*&#58;
506
+
507
+ <pre><code><r:textile>
508
+ * Erster
509
+ * Zweiter
510
+ </r:textile></code></pre>
511
+
512
+ erzeugt&#58;
513
+
514
+ <pre><code><ul>
515
+ <li>Erster</li>
516
+ <li>Zweiter</li>
517
+ </ul></code></pre>
518
+
519
+ title:
520
+ Gibt das @title@-Attribute der aktuellen Seite aus.
521
+
522
+ unless_ancestor_or_self:
523
+ Gibt die enthaltenen Elemente solange aus, bis der aktuelle Seitenkontext
524
+ entweder die tatsächliche Seite oder eines ihrer Eltern ist.
525
+
526
+ Wird typischerweise innerhalb eines anderen Tags (wie &lt;r&#58;children&#58;each&gt;)
527
+ benutzt, um zusätzlichen Markup auszugeben, bis der aktuelle Seitenkontext
528
+ entweder die tatsächliche Seite oder einer seiner Eltern ist.
529
+
530
+ *Verwendung&#58;*
531
+
532
+ <pre><code><r:unless_ancestor_or_self>...</r:unless_ancestor_or_self></code></pre>
533
+
534
+ unless_children:
535
+ Gibt die enthaltenen Elemente nur aus, wenn der aktuelle Seitenkontext
536
+ keine Kinder hat. Mit dem @status@-Attribut kann der Status der gefundenen
537
+ Kind-Seiten auf den angegebenen Status beschränkt werden. Default dafür
538
+ ist @published@. @status@="all" erfasst alle nicht-virtuellen Seiten.
539
+
540
+ *Verwendung&#58;*
541
+
542
+ <pre><code><r:unless_children [status="published"]>...</r:unless_children></code></pre>
543
+
544
+ unless_content:
545
+ Das Gegenteil des @if_content@-Tags.
546
+ Gibt die enthaltenen Elemente nur aus, wenn keiner der angegebenen Parts auf der Seite
547
+ existiert. Es können mehrere Parts als mit Komma getrennte Liste angegeben werden.
548
+ Wird das optionale @inherit@-Attribut auf 'true' gesetzt,
549
+ werden Kinder unabhängig von jedem Part gefunden. Default für @inherit@ ist @false@.
550
+
551
+ Wenn mehr als ein Part angegeben ist, kann das optionale @find@-Attribut auf @any@
552
+ gesetzt werden. Damit wird ein Element nicht ausgegeben, wenn irgendeiner der angegebenen
553
+ Parts gefunden wird. Default für das @any@-Attribut ist @all@.
554
+
555
+ *Verwendung&#58;*
556
+
557
+ <pre><code><r:unless_content [part="part_name, other_part"] [inherit="false"] [find="any"]>...</r:unless_content></code></pre>
558
+
559
+ unless_dev:
560
+ Das Gegenteil des @if_dev@ Tags.
561
+
562
+ *Verwendung&#58;*
563
+
564
+ <pre><code><r:unless_dev>...</r:unless_dev></code></pre>
565
+
566
+ unless_parent:
567
+ Gegenteil von if_parent. Gibt die enthaltenen Elemente nur aus, wenn die aktuelle
568
+ Seite keine Eltern hat, d.h. es handelt sich um die Startseite.
569
+
570
+ *Verwendung&#58;*
571
+
572
+ <pre><code><r:unless_parent>...</r:unless_parent></code></pre>
573
+
574
+ unless_self:
575
+ Zeigt die enthaltenen Elemente nur an, wenn der Seitenkontext nicht die aktuelle Seite ist.
576
+
577
+ Wird typischerweise innerhalb eines anderen Tags (wie &lt;r&#58;children&#58;each&gt;)
578
+ benutzt, um zusätzlichen Markup auszugeben, falls das Kind-Elemente nicht die aktuelle Seite ist.
579
+
580
+ *Verwendung&#58;*
581
+
582
+ <pre><code><r:unless_self>...</r:unless_self></code></pre>
583
+
584
+ unless_url:
585
+ Gegenteil des @if_url@ Tags.
586
+
587
+ *Verwendung&#58;*
588
+
589
+ <pre><code><r:unless_url matches="regexp" [ignore_case="true|false"]>...</r:unless_url></code></pre>
590
+
591
+ url:
592
+ Gibt das @url@-Attribut der aktuellen Seite aus.
593
+
594
+ yield:
595
+ Wird innerhalb eines Snippets als Platzhalter für die Ersetzung von Kind-Inhalten
596
+ verwendet, falls das Snippet als Doppel-Tag aufgerufen wird.
597
+
598
+ *Verwendung (Innerhalb eines Snippets)&#58;*
599
+
600
+ <pre><code>
601
+ <div id="outer">
602
+ <p>vorher</p>
603
+ <r:yield/>
604
+ <p>danach</p>
605
+ </div>
606
+ </code></pre>
607
+
608
+ Heißt das obige Snippet "yielding", kann es von jeder Seite, Layout oder
609
+ Snippet wie folgt aufgerufen werden&#58;
610
+
611
+ <pre><code><r:snippet name="yielding">Inhalt innerhalb..</r:snippet></code></pre>
612
+
613
+ Erzeugt folgenden Output&#58;
614
+
615
+ <pre><code>
616
+ <div id="outer">
617
+ <p>vorher</p>
618
+ Inhalt innerhalb..
619
+ <p>danach</p>
620
+ </div>
621
+ </code></pre>
622
+
623
+ Ein Aufruf von @<r:yield/>@ im Seitenkontext oder Layout erzeugt keinen Output.
624
+
@@ -0,0 +1,9 @@
1
+ class GermanLanguagePackExtension < Radiant::Extension
2
+ version "1.0"
3
+ description "Provides a German translation for the Radiant admin interface"
4
+ url "http://yourwebsite.com/de"
5
+
6
+ def activate
7
+
8
+ end
9
+ end
@@ -0,0 +1,28 @@
1
+ namespace :radiant do
2
+ namespace :extensions do
3
+ namespace :de do
4
+
5
+ desc "Runs the migration of the I18n De extension"
6
+ task :migrate => :environment do
7
+ require 'radiant/extension_migrator'
8
+ if ENV["VERSION"]
9
+ I18nDeExtension.migrator.migrate(ENV["VERSION"].to_i)
10
+ else
11
+ I18nDeExtension.migrator.migrate
12
+ end
13
+ end
14
+
15
+ desc "Copies public assets of the I18n De to the instance public/ directory."
16
+ task :update => :environment do
17
+ is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) }
18
+ puts "Copying assets from I18nDeExtension"
19
+ Dir[I18nDeExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file|
20
+ path = file.sub(I18nDeExtension.root, '')
21
+ directory = File.dirname(path)
22
+ mkdir_p RAILS_ROOT + directory, :verbose => false
23
+ cp file, RAILS_ROOT + path, :verbose => false
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "radiant-german_language_pack-extension"
5
+ s.version = '1.0.1'
6
+ s.platform = Gem::Platform::RUBY
7
+ s.authors = ["Radiant CMS Dev Team"]
8
+ s.email = ["radiant@radiantcms.org"]
9
+ s.homepage = "http://radiantcms.org/"
10
+ s.summary = %q{German translation for Radiant CMS}
11
+ s.description = %q{Provides a German translation for the Radiant admin interface.}
12
+
13
+ ignores = if File.exist?('.gitignore')
14
+ File.read('.gitignore').split("\n").inject([]) {|a,p| a + Dir[p] }
15
+ else
16
+ []
17
+ end
18
+
19
+ s.files = Dir['**/*'] - ignores
20
+ # s.test_files = Dir['test/**/*','spec/**/*','features/**/*'] - ignores
21
+ # s.executables = Dir['bin/*'] - ignores
22
+ # s.require_paths = ["lib"]
23
+ end
metadata ADDED
@@ -0,0 +1,52 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: radiant-german_language_pack-extension
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Radiant CMS Dev Team
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-29 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Provides a German translation for the Radiant admin interface.
15
+ email:
16
+ - radiant@radiantcms.org
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - config/locales/de.yml
22
+ - config/locales/de_available_tags.yml
23
+ - german_language_pack_extension.rb
24
+ - lib/tasks/i18n_de_extension_tasks.rake
25
+ - radiant-german_language_pack-extension.gemspec
26
+ - Rakefile
27
+ - README.md
28
+ homepage: http://radiantcms.org/
29
+ licenses: []
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements: []
47
+ rubyforge_project:
48
+ rubygems_version: 1.8.25
49
+ signing_key:
50
+ specification_version: 3
51
+ summary: German translation for Radiant CMS
52
+ test_files: []