radiant-german_language_pack-extension 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +4 -0
- data/Rakefile +123 -0
- data/config/locales/de.yml +428 -0
- data/config/locales/de_available_tags.yml +624 -0
- data/german_language_pack_extension.rb +9 -0
- data/lib/tasks/i18n_de_extension_tasks.rake +28 -0
- data/radiant-german_language_pack-extension.gemspec +23 -0
- metadata +52 -0
data/README.md
ADDED
data/Rakefile
ADDED
|
@@ -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‑Typ'
|
|
67
|
+
creating_status: 'Erzeuge {{model}}…'
|
|
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:*
|
|
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:*
|
|
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. <r:find>)
|
|
46
|
+
und auf das aktuelle Kind zurückverweisen will.
|
|
47
|
+
|
|
48
|
+
*Verwendung:*
|
|
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:*
|
|
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:each-Tag ist.
|
|
79
|
+
|
|
80
|
+
*Verwendung:*
|
|
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:each-Tag ist.
|
|
93
|
+
|
|
94
|
+
*Verwendung:*
|
|
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:each-Tag ist.
|
|
107
|
+
|
|
108
|
+
*Verwendung:*
|
|
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:each-Tag ist.
|
|
121
|
+
|
|
122
|
+
*Verwendung:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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 '%A, %B %d, %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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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 (<r:children:each>) verwendet,
|
|
229
|
+
um Markup auszugeben, wenn das Kind-Element von der aktuellen Seite abstammt.
|
|
230
|
+
|
|
231
|
+
*Verwendung:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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 <r:children:each>)
|
|
279
|
+
benutzt, um zusätzlichen Markup auszugeben, falls das Kind-Elemente die aktuelle Seite ist.
|
|
280
|
+
|
|
281
|
+
*Verwendung:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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 <meta />-Tags ausgegeben, solange
|
|
341
|
+
das Attribut 'tag' auf 'false' gesetzt ist.
|
|
342
|
+
|
|
343
|
+
*Verwendung:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
472
|
+
|
|
473
|
+
<pre><code><r:smarty_pants>"A revolutionary quotation."</r:smarty_pants></code></pre>
|
|
474
|
+
|
|
475
|
+
gibt folgendes aus:
|
|
476
|
+
|
|
477
|
+
<pre><code> </code>“<code>A revolutionary quotation.</code>”<code> </code></pre>
|
|
478
|
+
|
|
479
|
+
snippet:
|
|
480
|
+
Gibt das im @name@-Attribut angegebene Snippet im Seitenkontext aus.
|
|
481
|
+
|
|
482
|
+
*Verwendung:*
|
|
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:*
|
|
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:*
|
|
499
|
+
|
|
500
|
+
<pre><code><r:status [downcase='true'] /></code></pre>
|
|
501
|
+
|
|
502
|
+
textile:
|
|
503
|
+
Inhalt wir mit dem Textile-Filter gefiltert.
|
|
504
|
+
|
|
505
|
+
*Verwendung*:
|
|
506
|
+
|
|
507
|
+
<pre><code><r:textile>
|
|
508
|
+
* Erster
|
|
509
|
+
* Zweiter
|
|
510
|
+
</r:textile></code></pre>
|
|
511
|
+
|
|
512
|
+
erzeugt:
|
|
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 <r:children:each>)
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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:*
|
|
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 <r:children:each>)
|
|
578
|
+
benutzt, um zusätzlichen Markup auszugeben, falls das Kind-Elemente nicht die aktuelle Seite ist.
|
|
579
|
+
|
|
580
|
+
*Verwendung:*
|
|
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:*
|
|
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):*
|
|
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:
|
|
610
|
+
|
|
611
|
+
<pre><code><r:snippet name="yielding">Inhalt innerhalb..</r:snippet></code></pre>
|
|
612
|
+
|
|
613
|
+
Erzeugt folgenden Output:
|
|
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,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: []
|