locomotive_cms 2.0.0.rc1 → 2.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/app/assets/javascripts/locomotive/models/editable_element.js.coffee +5 -0
- data/app/assets/stylesheets/locomotive/backoffice/application.css.scss +12 -0
- data/app/assets/stylesheets/locomotive/backoffice/formtastic_changes.css.scss +5 -3
- data/app/assets/stylesheets/locomotive/shared/_helpers.css.scss +15 -0
- data/app/controllers/locomotive/api/content_entries_controller.rb +6 -1
- data/app/helpers/locomotive/content_types_helper.rb +2 -2
- data/app/helpers/locomotive/custom_fields_helper.rb +1 -1
- data/app/models/locomotive/content_entry.rb +12 -2
- data/app/models/locomotive/content_type.rb +32 -83
- data/app/models/locomotive/editable_file.rb +2 -2
- data/app/models/locomotive/extensions/content_type/default_values.rb +59 -0
- data/app/models/locomotive/extensions/content_type/sync.rb +62 -0
- data/app/models/locomotive/extensions/page/tree.rb +4 -4
- data/app/models/locomotive/extensions/site/locales.rb +0 -1
- data/app/models/locomotive/page.rb +6 -2
- data/app/models/locomotive/snippet.rb +3 -1
- data/app/presenters/locomotive/content_entry_presenter.rb +14 -9
- data/app/views/locomotive/content_entries/_list.html.haml +4 -0
- data/app/views/locomotive/pages/_page.html.haml +3 -0
- data/config/locales/admin_ui.de.yml +98 -100
- data/config/locales/admin_ui.en.yml +2 -0
- data/config/locales/admin_ui.fr.yml +2 -0
- data/config/locales/default.es.yml +2 -2
- data/lib/generators/locomotive/install/templates/carrierwave.rb +8 -5
- data/lib/locomotive.rb +0 -2
- data/lib/locomotive/carrierwave/base.rb +5 -5
- data/lib/locomotive/configuration.rb +1 -1
- data/lib/locomotive/custom_fields.rb +1 -1
- data/lib/locomotive/dependencies.rb +0 -2
- data/lib/locomotive/engine.rb +0 -2
- data/lib/locomotive/liquid/drops/content_entry.rb +19 -2
- data/lib/locomotive/liquid/drops/page.rb +4 -0
- data/lib/locomotive/liquid/drops/uploader.rb +15 -0
- data/lib/locomotive/liquid/tags/nav.rb +18 -5
- data/lib/locomotive/liquid/tags/with_scope.rb +17 -9
- data/lib/locomotive/routing/site_dispatcher.rb +1 -1
- data/lib/locomotive/version.rb +1 -1
- data/lib/tasks/locomotive.rake +7 -185
- metadata +71 -68
@@ -18,7 +18,7 @@ module Locomotive
|
|
18
18
|
|
19
19
|
## indexes ##
|
20
20
|
index :position
|
21
|
-
index [:depth
|
21
|
+
index [[:depth, Mongo::ASCENDING], [:position, Mongo::ASCENDING]]
|
22
22
|
end
|
23
23
|
|
24
24
|
module ClassMethods
|
@@ -78,8 +78,8 @@ module Locomotive
|
|
78
78
|
#
|
79
79
|
# @return [ Array ] The children pages ordered by their position
|
80
80
|
#
|
81
|
-
def children_with_minimal_attributes
|
82
|
-
self.children.minimal_attributes
|
81
|
+
def children_with_minimal_attributes( attrs = [] )
|
82
|
+
self.children.minimal_attributes( attrs )
|
83
83
|
end
|
84
84
|
|
85
85
|
# Assigns the new position of each child of this node.
|
@@ -109,4 +109,4 @@ module Locomotive
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
end
|
112
|
-
end
|
112
|
+
end
|
@@ -45,13 +45,13 @@ module Locomotive
|
|
45
45
|
validates_exclusion_of :slug, :in => Locomotive.config.reserved_slugs, :if => Proc.new { |p| p.depth <= 1 }
|
46
46
|
|
47
47
|
## named scopes ##
|
48
|
-
scope :latest_updated, :order_by => [[:updated_at, :desc]], :limit => Locomotive.config.ui
|
48
|
+
scope :latest_updated, :order_by => [[:updated_at, :desc]], :limit => Locomotive.config.ui[:latest_entries_nb]
|
49
49
|
scope :root, :where => { :slug => 'index', :depth => 0 }
|
50
50
|
scope :not_found, :where => { :slug => '404', :depth => 0 }
|
51
51
|
scope :published, :where => { :published => true }
|
52
52
|
scope :fullpath, lambda { |fullpath| { :where => { :fullpath => fullpath } } }
|
53
53
|
scope :handle, lambda { |handle| { :where => { :handle => handle } } }
|
54
|
-
scope :minimal_attributes, :only => %w(title slug fullpath position depth published templatized redirect listed parent_id created_at updated_at)
|
54
|
+
scope :minimal_attributes, lambda { |attrs = []| { :only => (attrs || []) + %w(title slug fullpath position depth published templatized redirect listed parent_id site_id created_at updated_at) } }
|
55
55
|
|
56
56
|
## methods ##
|
57
57
|
|
@@ -71,6 +71,10 @@ module Locomotive
|
|
71
71
|
self.cache_strategy != 'none'
|
72
72
|
end
|
73
73
|
|
74
|
+
def translated?
|
75
|
+
self.title_translations.key?(::Mongoid::Fields::I18n.locale.to_s) rescue false
|
76
|
+
end
|
77
|
+
|
74
78
|
def to_liquid
|
75
79
|
Locomotive::Liquid::Drops::Page.new(self)
|
76
80
|
end
|
@@ -44,7 +44,9 @@ module Locomotive
|
|
44
44
|
def update_templates
|
45
45
|
return unless (self.site rescue false) # not run if the site is being destroyed
|
46
46
|
|
47
|
-
pages =
|
47
|
+
pages = ::I18n.with_locale(::Mongoid::Fields::I18n.locale) do
|
48
|
+
pages = self.site.pages.any_in(:snippet_dependencies => [self.slug]).to_a
|
49
|
+
end
|
48
50
|
|
49
51
|
pages.each do |page|
|
50
52
|
self._change_snippet_inside_template(page.template.root)
|
@@ -36,16 +36,21 @@ module Locomotive
|
|
36
36
|
super + self.filtered_custom_fields_methods + default_list
|
37
37
|
end
|
38
38
|
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
self.source.
|
44
|
-
|
45
|
-
|
39
|
+
def as_json(methods = nil)
|
40
|
+
methods ||= self.included_methods
|
41
|
+
{}.tap do |hash|
|
42
|
+
methods.each do |meth|
|
43
|
+
hash[meth]= (if self.source.custom_fields_methods.include?(meth.to_s)
|
44
|
+
if self.source.is_a_custom_field_many_relationship?(meth.to_s)
|
45
|
+
# go deeper
|
46
|
+
self.source.send(meth).map { |entry| entry.to_presenter(:depth => self.depth + 1) }
|
47
|
+
else
|
48
|
+
self.source.send(meth) rescue nil
|
49
|
+
end
|
50
|
+
else
|
51
|
+
self.send(meth.to_sym) rescue nil
|
52
|
+
end)
|
46
53
|
end
|
47
|
-
else
|
48
|
-
super
|
49
54
|
end
|
50
55
|
end
|
51
56
|
|
@@ -6,7 +6,11 @@
|
|
6
6
|
%li.item{ :id => "entry-#{entry._id}" }
|
7
7
|
%span.handle
|
8
8
|
= image_tag 'locomotive/form/icons/drag.png'
|
9
|
+
|
9
10
|
%strong= link_to entry_label(content_type, entry), edit_content_entry_url(content_type.slug, entry)
|
11
|
+
|
12
|
+
- unless entry.translated?
|
13
|
+
%span.untranslated= t('locomotive.shared.list.untranslated')
|
10
14
|
.more
|
11
15
|
%span
|
12
16
|
!= t('locomotive.content_entries.index.updated_at')
|
@@ -7,34 +7,49 @@ de:
|
|
7
7
|
new_item: "+ hinzufügen"
|
8
8
|
switch_to_site: Los
|
9
9
|
delete: "Löschen"
|
10
|
+
close: "Schließen"
|
11
|
+
|
12
|
+
locales:
|
13
|
+
en: Englisch
|
14
|
+
de: Deutsch
|
15
|
+
fr: Französisch
|
16
|
+
pt-BR: "Bras. Portugiesisch"
|
17
|
+
it: Italienisch
|
18
|
+
nl: Niederländisch
|
19
|
+
"no": Norwegisch
|
20
|
+
es: Spanisch
|
21
|
+
ru: Russisch
|
10
22
|
|
11
23
|
messages:
|
12
|
-
confirm:
|
24
|
+
confirm: Sind Sie sicher ?
|
13
25
|
|
14
26
|
shared:
|
15
27
|
header:
|
16
28
|
welcome: Willkommen, %{name}
|
17
|
-
see: Webseite
|
18
|
-
switch:
|
29
|
+
see: Webseite zeigen
|
30
|
+
switch: Webseite wechseln
|
19
31
|
help: Hilfe
|
20
32
|
logout: Ausloggen
|
21
33
|
menu:
|
22
34
|
contents: Inhalte
|
23
|
-
assets:
|
35
|
+
assets: Medien
|
24
36
|
settings: Einstellungen
|
25
37
|
pages: Seiten
|
26
38
|
snippets: Snippets
|
27
|
-
account: Mein
|
39
|
+
account: Mein Zugang
|
28
40
|
site: Webseite
|
29
|
-
theme_assets:
|
30
|
-
|
31
|
-
|
32
|
-
|
41
|
+
theme_assets: Dateien
|
42
|
+
form:
|
43
|
+
change_file: Ändern
|
44
|
+
delete_file: Löschen
|
45
|
+
cancel: Abbrechen
|
33
46
|
form_actions:
|
34
47
|
back: Ohne Speichern zurück
|
35
48
|
create: Neu
|
36
49
|
update: Speichern
|
37
50
|
send: Senden
|
51
|
+
footer:
|
52
|
+
who_is_behind: "Dienst entwickelt von %{development} und entworfen von <a href=\"http://www.sachagreif.com\">Sacha Greif</a> — <small>version</small> %{version}"
|
38
53
|
|
39
54
|
errors:
|
40
55
|
"500":
|
@@ -49,7 +64,7 @@ de:
|
|
49
64
|
notifications:
|
50
65
|
new_content_entry:
|
51
66
|
subject: "[%{type}] neu"
|
52
|
-
title: "Hi %{name}, nur damit
|
67
|
+
title: "Hi %{name}, nur damit Sie Bescheid wissen! Am %{date} wurde folgende neue Instanz erstellt."
|
53
68
|
type: "Model: %{type}"
|
54
69
|
|
55
70
|
sites_picker:
|
@@ -64,10 +79,18 @@ de:
|
|
64
79
|
types:
|
65
80
|
file:
|
66
81
|
delete_file: Datei löschen
|
67
|
-
|
68
|
-
|
69
|
-
|
82
|
+
has_many:
|
83
|
+
empty: Die Liste ist leer
|
84
|
+
new_entry: + Neuer Eintrag
|
85
|
+
many_to_many:
|
86
|
+
empty: Die Liste ist leer. Wählen Sie einen Eintrag unten aus.
|
70
87
|
|
88
|
+
form:
|
89
|
+
required: Pflichtfeld
|
90
|
+
optional: Optional
|
91
|
+
default_label: Feldname
|
92
|
+
select_options:
|
93
|
+
ask_name: "Geben Sie den Namen der Auswahloption an."
|
71
94
|
|
72
95
|
sessions:
|
73
96
|
new:
|
@@ -84,27 +107,29 @@ de:
|
|
84
107
|
edit:
|
85
108
|
title: Passwort bearbeiten
|
86
109
|
link: "→ Zurück zur Login-Seite"
|
87
|
-
password: "
|
88
|
-
password_confirmation: "Wiederholung
|
110
|
+
password: "Ihr neues Passwort"
|
111
|
+
password_confirmation: "Wiederholung ihres neuen Passworts"
|
89
112
|
|
90
113
|
pages:
|
91
114
|
index:
|
92
115
|
title: Seiten anzeigen
|
93
|
-
help: "Seiten sind als Baum organisiert.
|
94
|
-
no_items: "Momentan gibt es keine Seiten.
|
116
|
+
help: "Seiten sind als Baum organisiert. Sie können die Seiten also wie Ordner sortieren und verschachteln."
|
117
|
+
no_items: "Momentan gibt es keine Seiten. Klicken Sie einfach <a href='%{url}'>hier</a>, um die erste Seite zu erstellen."
|
95
118
|
new: neue Seite
|
96
119
|
latest_entries: Neueste Seiten
|
97
120
|
new:
|
98
121
|
title: Neue Seite
|
99
|
-
help: "
|
122
|
+
help: "Füllen Sie bitte das folgende Formular aus, um eine neue Seite zu erstellen. Nur zur Info: Die Seite wird nicht standardmäßig publiziert!"
|
100
123
|
page:
|
101
124
|
updated_at: bearbeitet am
|
102
125
|
edit:
|
103
126
|
show: anzeigen
|
104
127
|
help: "Der Seiten-Titel kann durch anklicken bearbeitet werden."
|
105
|
-
ask_for_title: "Bitte
|
128
|
+
ask_for_title: "Bitte geben Sie den neuen Seiten-Titel ein"
|
106
129
|
form:
|
130
|
+
change_file: Datei ändern
|
107
131
|
delete_file: Datei löschen
|
132
|
+
cancel: Abbrechen
|
108
133
|
default_block: Standard
|
109
134
|
cache_strategy:
|
110
135
|
none: Keine
|
@@ -118,28 +143,29 @@ de:
|
|
118
143
|
index:
|
119
144
|
title: Snipptes anzeigen
|
120
145
|
help: "Snippets sind HTML-Code Ausschnitte, die an verschiedenen Stellen der Webseite eingesetzt werden können (z.B. die Fußzeile)."
|
121
|
-
no_items: "Momentan gibt es keine Snippets.
|
146
|
+
no_items: "Momentan gibt es keine Snippets. Klicken Sie einfach <a href='%{url}'>hier</a>, um das erste Snippet zu erstellen."
|
122
147
|
new: neues Snippet
|
123
148
|
new:
|
124
149
|
title: Neues Snippet
|
125
|
-
help: "
|
150
|
+
help: "Füllen Sie bitte das folgende Formular aus, um ein neues Snippet zu erstellen."
|
126
151
|
edit:
|
127
152
|
title: Snippet bearbeiten
|
128
|
-
help: "
|
153
|
+
help: "Füllen Sie bitte das folgende Formular aus, um ihr Snippet zu aktualisieren."
|
129
154
|
snippet:
|
130
155
|
updated_at: Aktualisiert am
|
131
156
|
|
132
157
|
sites:
|
133
158
|
new:
|
134
|
-
title:
|
135
|
-
help: "Fülle das folgende Formular aus, um
|
159
|
+
title: Neuer Webseite
|
160
|
+
help: "Fülle das folgende Formular aus, um einen neuen Webseiteen zu erstellen."
|
161
|
+
domains:
|
162
|
+
empty: "Bisher sind keine Domains/Hostnamen an diese Seite gebunden. Wenn Sie unten Domains/Hostnamen angeben, achten Sie bitte darauf <b>Ihren DNS Server zu prüfen/aktualisieren.</b>"
|
136
163
|
|
137
164
|
current_site:
|
138
165
|
edit:
|
139
|
-
import: Importieren
|
140
166
|
new_membership: Account hinzufügen
|
141
|
-
help: "Der Name
|
142
|
-
ask_for_name: "Bitte
|
167
|
+
help: "Der Name des Webseiteen kann durch einen Klick auf den Namen bearbeitet werden."
|
168
|
+
ask_for_name: "Bitte geben Sie den neuen Namen der Webseite an"
|
143
169
|
|
144
170
|
memberships:
|
145
171
|
roles:
|
@@ -148,91 +174,66 @@ de:
|
|
148
174
|
author: Autor
|
149
175
|
new:
|
150
176
|
title: Neuer Account
|
151
|
-
help: "Bitte
|
177
|
+
help: "Bitte geben Sie eine Email für den neuen Account an. Wenn diese noch nicht registriert ist, werden Sie zu einem Formular zur Erstellung des Accounts weitergeleitet."
|
152
178
|
|
153
179
|
accounts:
|
154
180
|
new:
|
155
181
|
title: Neuer Account
|
156
|
-
help: "
|
182
|
+
help: "Füllen Sie das folgende Formular aus, um einen neuen Account anzulegen."
|
157
183
|
|
158
184
|
my_account:
|
159
185
|
edit:
|
160
|
-
help: "
|
186
|
+
help: "Ihren Namen können Sie durch einen Klick auf denselben ändern."
|
161
187
|
new_site: Neue Webseite
|
162
|
-
|
163
|
-
de: Deutsch
|
164
|
-
fr: Französisch
|
165
|
-
pt-BR: "Bras. Portugisisch"
|
166
|
-
it: "Italienisch"
|
167
|
-
nl: "Holländer"
|
168
|
-
"no": "Norwegisch"
|
169
|
-
es: "Spanisch"
|
170
|
-
ru: "Russisch"
|
171
|
-
ask_for_name: "Bitte gib deinen neuen Namen an"
|
188
|
+
ask_for_name: "Bitte geben Sie Ihren Namen an."
|
172
189
|
|
173
190
|
theme_assets:
|
174
191
|
index:
|
175
|
-
title:
|
176
|
-
help: "In diesem Bereich
|
192
|
+
title: Layout-Dateien
|
193
|
+
help: "In diesem Bereich können Sie alle Dateien organisieren, die für das Layout verwendet werden."
|
177
194
|
new: neue Datei
|
178
195
|
snippets: Snippets
|
179
196
|
css_and_js: Style und Javascript
|
180
197
|
fonts: Fonts
|
181
198
|
images: Bilder
|
182
199
|
media: Medien
|
183
|
-
no_items: "Momentan gibt es keine Dateien.
|
200
|
+
no_items: "Momentan gibt es keine Dateien. Klicken Sie einfach <a href='%{url}'>hier</a>, um die erste Datei zu erstellen."
|
184
201
|
asset:
|
185
202
|
updated_at: Aktualisiert am
|
186
203
|
new:
|
187
204
|
title: Neue Datei
|
188
|
-
help: "
|
205
|
+
help: "Sie haben die Wahl entweder eine neue Datei hochzuladen oder ein bestehendes Stylesheet / Javascript als Text einzufügen."
|
189
206
|
edit:
|
190
207
|
title: "Bearbeite %{file}"
|
191
208
|
help: "Diese Datei kann über folgende URL erreicht werden: <a href='%{url}'>%{url}</a>"
|
192
|
-
help_image: "
|
193
|
-
help_javascript: "
|
194
|
-
help_stylesheet: "
|
209
|
+
help_image: "Sie können das Bild in Templates oder Snippets mit folgendem Code einbinden : <span class='code'>{{ '%{path}' | theme_image_tag }}</span>.<br/>Aktuelle Breite x Höhe : <b>%{width}px x %{height}px</b>.<br/>"
|
210
|
+
help_javascript: "Sie können die Javascript Datei in Templates oder Snippets mit folgendem Code einbinden: <span class='code'>{{ '%{path}' | javascript_tag }}</span>.<br/>"
|
211
|
+
help_stylesheet: "Sie können die CSS Datei in Templates oder Snippets mit folgendem Code einbinden : <span class='code'>{{ '%{path}' | stylesheet_tag }}</span>.<br/>"
|
195
212
|
form:
|
196
|
-
picker_link:
|
213
|
+
picker_link: Fügen Sie eine Datei in den Code ein
|
197
214
|
choose_file: Datei auswählen
|
198
215
|
choose_plain_text: Text einfügen
|
199
216
|
images:
|
200
|
-
title: Bilder anzeigen
|
217
|
+
title: "Bilder anzeigen"
|
201
218
|
no_items: "Momentan gibt es keine Bilder."
|
219
|
+
upload: "Bilder hochladen"
|
202
220
|
|
203
|
-
|
204
|
-
|
205
|
-
title:
|
206
|
-
|
207
|
-
|
208
|
-
title: Bild bearbeiten
|
209
|
-
help: "Fülle das folgende Formular aus, um dein Bild zu aktualisieren."
|
210
|
-
|
211
|
-
bookings:
|
212
|
-
index:
|
213
|
-
title: Buchungen
|
214
|
-
help: "Der Name der Buchung kann durch darauf klicken bearbeitet werden."
|
215
|
-
new: neue Buchung
|
216
|
-
no_items: "Momentan gibt es keine Buchungen. Klicke einfach <a href='%{url}'>hier</a>, um eine neue Buchung zu erstellen."
|
217
|
-
latest_entries: Letzte Buchungen
|
218
|
-
updated_at: bearbeitet am
|
219
|
-
new:
|
220
|
-
title: Neue Buchung
|
221
|
-
help: "Gib erst mal einen Namen ein. Alle anderen Einstellungen kannst du vornehmen, sobald das Formular abgesendet ist."
|
222
|
-
edit:
|
223
|
-
help: "Der Name der Buchung kann durch darauf klicken bearbeitet werden."
|
224
|
-
destroy: Buchung löschen
|
225
|
-
ask_for_name: "Gib den neuen Namen ein"
|
221
|
+
content_assets:
|
222
|
+
picker:
|
223
|
+
title: "Eine Mediendatei einfügen"
|
224
|
+
no_items: "Es gibt bisher keine Mediendateien."
|
225
|
+
upload: "Mediendatei hochladen"
|
226
226
|
|
227
227
|
content_types:
|
228
228
|
index:
|
229
229
|
new: Neuer Baustein
|
230
|
+
edit: "Baustein bearbeiten"
|
230
231
|
new:
|
231
232
|
title: Neuer Baustein
|
232
|
-
help: "
|
233
|
+
help: "Erstellen Sie ihren eigenen Baustein (Projekte, Leute, ...usw). Der Baustein muss mindestens ein Feld haben. Das erste Feld ist dabei immer verpflichtend auszufüllen."
|
233
234
|
edit:
|
234
235
|
title: Vorlage bearbeiten
|
235
|
-
help: "
|
236
|
+
help: "Ihre Vorlage muss mindestens ein Feld haben. Das erste Feld ist dabei immer verpflichtend auszufüllen."
|
236
237
|
show_items: zeige Elemente
|
237
238
|
new_item: neues Element
|
238
239
|
form:
|
@@ -255,7 +256,7 @@ de:
|
|
255
256
|
latest_entries: "Neueste Elemente"
|
256
257
|
updated_at: "Aktualisiert am"
|
257
258
|
list:
|
258
|
-
no_entries: "Momentan gibt es keine Elemente.
|
259
|
+
no_entries: "Momentan gibt es keine Elemente. Klicken Sie einfach <a href='%{url}'>hier</a>, um das erste Element zu erstellen."
|
259
260
|
new:
|
260
261
|
title: '%{type} — neues Element'
|
261
262
|
edit:
|
@@ -270,41 +271,38 @@ de:
|
|
270
271
|
cross_domain_sessions:
|
271
272
|
new:
|
272
273
|
title: Cross-Domain Authentifizierung
|
273
|
-
notice:
|
274
|
-
|
275
|
-
import:
|
276
|
-
new:
|
277
|
-
title: Import
|
278
|
-
help: "Passe bitte auf, wenn du ein neues Template für deine bestehende Webseite hochlädst. Deine bestehenden Daten könnten verändert oder gelöscht werden!"
|
279
|
-
show:
|
280
|
-
title: Import am Laufen
|
281
|
-
help: "Deine Webseite wird gerade mit deinem hochgeladenen Template aktualisiert. Bitte habe noch ein paar Sekunden Geduld."
|
282
|
-
steps:
|
283
|
-
site: Webseiten-Informationen
|
284
|
-
content_types: Benutzerdefinierte Inhalts-Typen
|
285
|
-
assets: Template-Dateien
|
286
|
-
snippets: Snippets
|
287
|
-
pages: Seiten
|
288
|
-
messages:
|
289
|
-
success: "Deine Webseite wurde erfolgreich aktualisiert."
|
290
|
-
failure: "Der Import war leider nicht erfolgreich."
|
274
|
+
notice: Sie werden zu der Webseite in ein paar Sekunden weitergeleitet.
|
291
275
|
|
292
276
|
installation:
|
293
277
|
common:
|
294
278
|
title: Erst-Installation von Locomotive CMS
|
295
279
|
next: Weiter
|
296
280
|
step_1:
|
297
|
-
title: "Schritt 1/2 —
|
281
|
+
title: "Schritt 1/2 — Zugang erstellen"
|
298
282
|
name: Name
|
299
283
|
email: E-Mail
|
300
284
|
password: Passwort
|
301
285
|
password_confirmation: Passwort-Bestätigung
|
302
|
-
done: "
|
303
|
-
next:
|
286
|
+
done: "Sie haben bereits einen Zugang hinzugefügt:<br/><strong>%{name}</strong>, <em>%{email}</em>"
|
287
|
+
next: Zugang erstellen
|
304
288
|
step_2:
|
305
289
|
title: "Schritt 2/2 — Webseite erstellen"
|
306
|
-
explanations:
|
307
|
-
|
308
|
-
|
309
|
-
back_to_default_template: "Klick <a href='#'>hier</a> um ein Template auszuwählen"
|
290
|
+
explanations: "Es ist fast geschafft. Bitte geben Sie Ihrer ersten Webseite einen Namen und wählen Sie eine Sprache aus."
|
291
|
+
default_site_locale: Sprachauswahl
|
292
|
+
default_site_locales_hints: Sie können später weitere Sprachen im Einstellungsdialog vornehmen.
|
310
293
|
next: Webseite erstellen
|
294
|
+
|
295
|
+
public:
|
296
|
+
pages:
|
297
|
+
show_toolbar:
|
298
|
+
statuses:
|
299
|
+
loading: "Lade...."
|
300
|
+
disabled: "Inline Editor deaktiviert"
|
301
|
+
labels:
|
302
|
+
save_changes: "Änderungen speichern: "
|
303
|
+
editing_mode: "Bearbeitungsmodus: "
|
304
|
+
lang: "Sprache: "
|
305
|
+
buttons:
|
306
|
+
back: "Zur Administration zurück"
|
307
|
+
confirm: Bestätigen
|
308
|
+
cancel: Abbrechen
|